Revert "Update to platform-tools 29.0.5" This reverts commit 7a1c1c346511cd4b85f920cd296e7c526cc541dd. Reason for revert: broke ab/androidx-master-dev Change-Id: Idd32fab276ed0b272179c26558b9ad5074f07e8f
diff --git a/NOTICE.txt b/NOTICE.txt index c9df5e9..0992577 100644 --- a/NOTICE.txt +++ b/NOTICE.txt
@@ -1,516 +1,155 @@ Notices for files contained in the tools directory: ============================================================ Notices for file(s): -/lib64/libfec_rs.a +/bin/newfs_msdos ------------------------------------------------------------ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 +Copyright (c) 1998 Robert Nordier +All rights reserved. - Copyright © 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] +THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - Preamble +------------------------------------------------------------------- - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. +Copyright (c) 2013 The NetBSD Foundation, Inc. +All rights reserved. - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. +This code is derived from software contributed to The NetBSD Foundation +by Christos Zoulas. - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. +------------------------------------------------------------------- - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. +SPDX-License-Identifier: BSD-2-Clause-FreeBSD - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. +Copyright (c) 1998 Robert Nordier +All rights reserved. - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. +THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the library's name and a brief idea of what it does.> - Copyright © <year> <name of author> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - +------------------------------------------------------------------- ============================================================ Notices for file(s): -/lib64/libtinyxml2.a +/framework/jsr305.jar +/framework/jsr305lib.jar +------------------------------------------------------------ +Copyright (c) 2007-2009, JSR305 expert group +All rights reserved. + +http://www.opensource.org/licenses/bsd-license.php + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the JSR305 expert group nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +============================================================ +Notices for file(s): +/framework/mockito-host.jar +------------------------------------------------------------ +The MIT License + +Copyright (c) 2007 Mockito contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +============================================================ +Notices for file(s): /lib64/libtinyxml2.dylib ------------------------------------------------------------ This software is provided 'as-is', without any express or implied @@ -534,212 +173,134 @@ ============================================================ Notices for file(s): -/lib64/libzopfli.a +/lib/libcompiler_rt-extras.a +/lib64/libcompiler_rt-extras.a +/lib64/libcompiler_rt.dylib ------------------------------------------------------------ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +============================================================================== +compiler_rt License +============================================================================== - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +The compiler_rt library is dual licensed under both the University of Illinois +"BSD-Like" license and the MIT license. As a user of this code you may choose +to use it under either license. As a contributor, you agree to allow your code +to be used under both. - 1. Definitions. +Full text of the relevant licenses is included below. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +============================================================================== - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +University of Illinois/NCSA +Open Source License - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +All rights reserved. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +Developed by: - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + LLVM Team - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + University of Illinois at Urbana-Champaign - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + http://llvm.org - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +============================================================================== - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +============================================================================== +Copyrights and Licenses for Third Party Software Distributed with LLVM: +============================================================================== +The LLVM software contains code written by third parties. Such software will +have its own individual LICENSE.TXT file in the directory in which it appears. +This file will describe the copyrights, license, and restrictions which apply +to that code. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +The disclaimer of warranty in the University of Illinois Open Source License +applies to all code in the LLVM Distribution, and nothing in any of the +other licenses gives permission to use the names of the LLVM Team or the +University of Illinois to endorse or promote products derived from this +Software. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2011 Google Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ============================================================ Notices for file(s): +/lib64/libxml2.dylib +------------------------------------------------------------ +Except where otherwise noted in the source code (e.g. the files hash.c, +list.c and the trio files, which are covered by a similar licence but +with different Copyright notices) all the files are: + + Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +============================================================ +Notices for file(s): +/lib/liblog.a +/lib/liblog.dylib /lib64/liblog.a /lib64/liblog.dylib ------------------------------------------------------------ @@ -936,206 +497,620 @@ ============================================================ Notices for file(s): -/bin/adb -/lib64/libadb_host.a -/lib64/libfastdeploy_host.a +/bin/v8mkpeephole +/lib/libv8base.a +/lib64/libv8base.a ------------------------------------------------------------ +This license applies to all parts of V8 that are not externally +maintained libraries. The externally maintained libraries used by V8 +are: - Copyright (c) 2006-2009, The Android Open Source Project - Copyright 2006, Brian Swetland <swetland@frotz.net> + - PCRE test suite, located in + test/mjsunit/third_party/regexp-pcre/regexp-pcre.js. This is based on the + test suite from PCRE-7.3, which is copyrighted by the University + of Cambridge and Google, Inc. The copyright notice and license + are embedded in regexp-pcre.js. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. + - Layout tests, located in test/mjsunit/third_party/object-keys. These are + based on layout tests from webkit.org which are copyrighted by + Apple Computer, Inc. and released under a 3-clause BSD license. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + - Strongtalk assembler, the basis of the files assembler-arm-inl.h, + assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h, + assembler-ia32.cc, assembler-ia32.h, assembler-x64-inl.h, + assembler-x64.cc, assembler-x64.h, assembler-mips-inl.h, + assembler-mips.cc, assembler-mips.h, assembler.cc and assembler.h. + This code is copyrighted by Sun Microsystems Inc. and released + under a 3-clause BSD license. + - Valgrind client API header, located at third_party/valgrind/valgrind.h + This is release under the BSD license. - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +These libraries have their own licenses; we recommend you read them, +as their terms may differ from the terms below. - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Further license information can be found in LICENSE files located in +sub-directories. - 1. Definitions. +Copyright 2014, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +======================================================================== - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +fdlibm - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +Copyright (C) 1993-2004 by Sun Microsystems, Inc. All rights reserved. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +Developed at SunSoft, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +======================================================================== - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +Strongtalk - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +Copyright (c) 1994-2006 Sun Microsystems Inc. +All Rights Reserved. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +- Redistribution in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +- Neither the name of Sun Microsystems or the names of contributors may +be used to endorse or promote products derived from this software without +specific prior written permission. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +The original source code covered by the above license above has been +modified significantly by Google Inc. +Copyright 2006-2008 the V8 project authors. All rights reserved. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +======================================================================== - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +valgrind - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +---------------------------------------------------------------- - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +Notice that the following BSD-style license applies to this one +file (valgrind.h) only. The rest of Valgrind is licensed under the +terms of the GNU General Public License, version 2, unless +otherwise indicated. See the COPYING file in the source +distribution for details. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +---------------------------------------------------------------- - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +This file is part of Valgrind, a dynamic binary instrumentation +framework. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +Copyright (C) 2000-2007 Julian Seward. All rights reserved. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: - END OF TERMS AND CONDITIONS +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ============================================================ Notices for file(s): +/framework/org-netbeans-api-visual.jar +/framework/org-openide-util.jar +------------------------------------------------------------ +The GNU General Public License (GPL) Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. + +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away +your freedom to share and change it. By contrast, the GNU +General Public License is intended to guarantee your freedom +to share and change free software--to make sure the software +is free for all its users. This General Public License +applies to most of the Free Software Foundation's software +and to any other program whose authors commit to using it. +(Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can +apply it to your programs, too. When we speak of free +software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and +charge for this service if you wish), that you receive +source code or can get it if you want it, that you can +change the software or use pieces of it in new free +programs; and that you know you can do these things. To +protect your rights, we need to make restrictions that +forbid anyone to deny you these rights or to ask you to +surrender the rights. These restrictions translate to +certain responsibilities for you if you distribute copies of +the software, or if you modify it. + +For example, if you distribute copies of such a program, +whether gratis or for a fee, you must give the recipients +all the rights that you have. You must make sure that they, +too, receive or can get the source code. And you must show +them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the +software, and (2) offer you this license which gives you +legal permission to copy, distribute and/or modify the +software. + +Also, for each author's protection and ours, we want to make +certain that everyone understands that there is no warranty +for this free software. If the software is modified by +someone else and passed on, we want its recipients to know +that what they have is not the original, so that any +problems introduced by others will not reflect on the +original authors' reputations. + +Finally, any free program is threatened constantly by +software patents. We wish to avoid the danger that +redistributors of a free program will individually obtain +patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must +be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution +and modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND +MODIFICATION + +0. This License applies to any program or other work which +contains a notice placed by the copyright holder saying it +may be distributed under the terms of this General Public +License. The "Program", below, refers to any such program or +work, and a "work based on the Program" means either the +Program or any derivative work under copyright law: that is +to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into +another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each +licensee is addressed as "you". + +Activities other than copying, distribution and modification +are not covered by this License; they are outside its scope. +The act of running the Program is not restricted, and the +output from the Program is covered only if its contents +constitute a work based on the Program (independent of +having been made by running the Program). Whether that is +true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the +Program's source code as you receive it, in any medium, +provided that you conspicuously and appropriately publish on +each copy an appropriate copyright notice and disclaimer of +warranty; keep intact all the notices that refer to this +License and to the absence of any warranty; and give any +other recipients of the Program a copy of this License along +with the Program. + +You may charge a fee for the physical act of transferring a +copy, and you may at your option offer warranty protection +in exchange for a fee. + +2. You may modify your copy or copies of the Program or any +portion of it, thus forming a work based on the Program, and +copy and distribute such modifications or work under the +terms of Section 1 above, provided that you also meet all of +these conditions: + +a) You must cause the modified files to carry prominent +notices stating that you changed the files and the date of +any change. + +b) You must cause any work that you distribute or publish, +that in whole or in part contains or is derived from the +Program or any part thereof, to be licensed as a whole at no +charge to all third parties under the terms of this License. + +c) If the modified program normally reads commands +interactively when run, you must cause it, when started +running for such interactive use in the most ordinary way, +to print or display an announcement including an appropriate +copyright notice and a notice that there is no warranty (or +else, saying that you provide a warranty) and that users may +redistribute the program under these conditions, and telling +the user how to view a copy of this License. (Exception: if +the Program itself is interactive but does not normally +print such an announcement, your work based on the Program +is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the +Program, and can be reasonably considered independent and +separate works in themselves, then this License, and its +terms, do not apply to those sections when you distribute +them as separate works. But when you distribute the same +sections as part of a whole which is a work based on the +Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees +extend to the entire whole, and thus to each and every part +regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights +or contest your rights to work written entirely by you; +rather, the intent is to exercise the right to control the +distribution of derivative or collective works based on the +Program. In addition, mere aggregation of another work not +based on the Program with the Program (or with a work based +on the Program) on a volume of a storage or distribution +medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based +on it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you +also do one of the following: + +a) Accompany it with the complete corresponding +machine-readable source code, which must be distributed +under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least +three years, to give any third party, for a charge no more +than your cost of physically performing source distribution, +a complete machine-readable copy of the corresponding source +code, to be distributed under the terms of Sections 1 and 2 +above on a medium customarily used for software interchange; +or, + +c) Accompany it with the information you received as to the +offer to distribute corresponding source code. (This +alternative is allowed only for noncommercial distribution +and only if you received the program in object code or +executable form with such an offer, in accord with +Subsection b above.) + +The source code for a work means the preferred form of the +work for making modifications to it. For an executable work, +complete source code means all the source code for all +modules it contains, plus any associated interface +definition files, plus the scripts used to control +compilation and installation of the executable. However, as +a special exception, the source code distributed need not +include anything that is normally distributed (in either +source or binary form) with the major components (compiler, +kernel, and so on) of the operating system on which the +executable runs, unless that component itself accompanies +the executable. If distribution of executable or object code +is made by offering access to copy from a designated place, +then offering equivalent access to copy the source code from +the same place counts as distribution of the source code, +even though third parties are not compelled to copy the +source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the +Program except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense or distribute +the Program is void, and will automatically terminate your +rights under this License. However, parties who have +received copies, or rights, from you under this License will +not have their licenses terminated so long as such parties +remain in full compliance. + +5. You are not required to accept this License, since you +have not signed it. However, nothing else grants you +permission to modify or distribute the Program or its +derivative works. These actions are prohibited by law if you +do not accept this License. Therefore, by modifying or +distributing the Program (or any work based on the Program), +you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or +modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based +on the Program), the recipient automatically receives a +license from the original licensor to copy, distribute or +modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. You are +not responsible for enforcing compliance by third parties to +this License. + +7. If, as a consequence of a court judgment or allegation of +patent infringement or for any other reason (not limited to +patent issues), conditions are imposed on you (whether by +court order, agreement or otherwise) that contradict the +conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as +to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a +consequence you may not distribute the Program at all. For +example, if a patent license would not permit royalty-free +redistribution of the Program by all those who receive +copies directly or indirectly through you, then the only way +you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or +unenforceable under any particular circumstance, the balance +of the section is intended to apply and the section as a +whole is intended to apply in other circumstances. It is not +the purpose of this section to induce you to infringe any +patents or other property right claims or to contest +validity of any such claims; this section has the sole +purpose of protecting the integrity of the free software +distribution system, which is implemented by public license +practices. Many people have made generous contributions to +the wide range of software distributed through that system +in reliance on consistent application of that system; it is +up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee +cannot impose that choice. + +This section is intended to make thoroughly clear what is +believed to be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is +restricted in certain countries either by patents or by +copyrighted interfaces, the original copyright holder who +places the Program under this License may add an explicit +geographical distribution limitation excluding those +countries, so that distribution is permitted only in or +among countries not thus excluded. In such case, this +License incorporates the limitation as if written in the +body of this License. + +9. The Free Software Foundation may publish revised and/or +new versions of the General Public License from time to +time. Such new versions will be similar in spirit to the +present version, but may differ in detail to address new +problems or concerns. + +Each version is given a distinguishing version number. If +the Program specifies a version number of this License which +applies to it and "any later version", you have the option +of following the terms and conditions either of that version +or of any later version published by the Free Software +Foundation. If the Program does not specify a version number +of this License, you may choose any version ever published +by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into +other free programs whose distribution conditions are +different, write to the author to ask for permission. For +software which is copyrighted by the Free Software +Foundation, write to the Free Software Foundation; we +sometimes make exceptions for this. Our decision will be +guided by the two goals of preserving the free status of all +derivatives of our free software and of promoting the +sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS +NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM +"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR +IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE +OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY +WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED +ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, +SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF +THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT +LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH +HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the +greatest possible use to the public, the best way to achieve +this is to make it free software which everyone can +redistribute and change under these terms. + +To do so, attach the following notices to the program. It is +safest to attach them to the start of each source file to +most effectively convey the exclusion of warranty; and each +file should have at least the "copyright" line and a pointer +to where the full notice is found. + +One line to give the program's name and a brief idea of what +it does. + +Copyright (C) <year> <name of author> +This program is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later +version. This program is distributed in the hope that it +will be useful, but WITHOUT ANY WARRANTY; without even the +implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for +more details. You should have received a copy of the GNU +General Public License along with this program; if not, +write to the Free Software Foundation, Inc., 59 Temple +Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and +paper mail. If the program is interactive, make it output a +short notice like this when it starts in an interactive +mode: + +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w'. This is free software, and you are welcome to +redistribute it under certain conditions; type `show c' for +details. The hypothetical commands `show w' and `show c' +should show the appropriate parts of the General Public +License. Of course, the commands you use may be called +something other than `show w' and `show c'; they could even +be mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a +programmer) or your school, if any, to sign a "copyright +disclaimer" for the program, if necessary. Here is a sample; +alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in +the program `Gnomovision' (which makes passes at compilers) +written by James Hacker. + +signature of Ty Coon, 1 April 1989 +Ty Coon, President of Vice +This General Public License does not permit incorporating +your program into proprietary programs. If your program is a +subroutine library, you may consider it more useful to +permit linking proprietary applications with the library. If +this is what you want to do, use the GNU Library General +Public License instead of this License. + +"CLASSPATH" EXCEPTION TO THE GPL VERSION 2 + +Certain source files distributed by Sun Microsystems, Inc. +are subject to the following clarification and special +exception to the GPL Version 2, but only where Sun has +expressly included in the particular source file's header +the words "Sun designates this particular file as subject +to the "Classpath" exception as provided by Sun in the +License file that accompanied this code." + + Linking this library statically or dynamically with other +modules is making a combined work based on this library. +Thus, the terms and conditions of the GNU General Public +License Version 2 cover the whole combination. + + As a special exception, the copyright holders of this +library give you permission to link this library with +independent modules to produce an executable, regardless of +the license terms of these independent modules, and to copy +and distribute the resulting executable under terms of your +choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license +of that module. An independent module is a module which is +not derived from or based on this library. If you modify +this library, you may extend this exception to your version +of the library, but you are not obligated to do so. If you +do not wish to do so, delete this exception statement from +your version. +============================================================ +Notices for file(s): +/lib/libopenjdkjvm.dylib +/lib/libopenjdkjvmd.dylib +/lib64/libopenjdkjvm.dylib +/lib64/libopenjdkjvmd.dylib +------------------------------------------------------------ +Copyright (C) 2014 The Android Open Source Project +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This file implements interfaces from the file jvm.h. This implementation +is licensed under the same terms as the file jvm.h. The +copyright and license information for the file jvm.h follows. + +Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + +============================================================ +Notices for file(s): /bin/mdnsd -/lib64/libmdnssd.a ------------------------------------------------------------ The majority of the source code in the mDNSResponder project is licensed under the terms of the Apache License, Version 2.0, available from: @@ -1156,7 +1131,6 @@ /bin/fsck.f2fs /bin/make_f2fs /bin/sload_f2fs -/lib64/libf2fs_fmt_host.a ------------------------------------------------------------ The tools for F2FS are covered by GNU Public License version 2. Exceptionally, the following files are also covered by the GNU Lesser General @@ -2025,49 +1999,363 @@ ============================================================ Notices for file(s): -/bin/aprotoc -/bin/protoc-gen-javanano -/lib64/libprotobuf-cpp-full.dylib -/lib64/libprotobuf-cpp-lite.a -/lib64/libprotoc.a +/bin/fc_sort ------------------------------------------------------------ -Copyright 2008 Google Inc. All rights reserved. + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. + Preamble -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. -Code generated by the Protocol Buffer compiler is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. ============================================================ Notices for file(s): /bin/assemble_vintf -/lib64/libassemblevintf.a +/bin/checkvintf +/bin/hidl-gen +/framework/dagger2-auto-value-host.jar +/framework/dagger2-host.jar +/framework/dagger2-inject-host.jar +/framework/desugar.jar +/framework/guavalib.jar +/framework/jarjar.jar +/framework/objenesis-host.jar +/lib64/libhidl-gen-ast.dylib +/lib64/libhidl-gen.dylib /lib64/libvintf.dylib ------------------------------------------------------------ @@ -2275,6 +2563,142 @@ ============================================================ Notices for file(s): +/lib64/libevent-host.dylib +------------------------------------------------------------ +Libevent is available for use under the following license, commonly known +as the 3-clause (or "modified") BSD license: + +============================== +Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu> +Copyright (c) 2007-2012 Niels Provos and Nick Mathewson + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +============================== + +Portions of Libevent are based on works by others, also made available by +them under the three-clause BSD license above. The copyright notices are +available in the corresponding source files; the license is as above. Here's +a list: + +log.c: + Copyright (c) 2000 Dug Song <dugsong@monkey.org> + Copyright (c) 1993 The Regents of the University of California. + +strlcpy.c: + Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + +win32select.c: + Copyright (c) 2003 Michael A. Davis <mike@datanerds.net> + +evport.c: + Copyright (c) 2007 Sun Microsystems + +ht-internal.h: + Copyright (c) 2002 Christopher Clark + +minheap-internal.h: + Copyright (c) 2006 Maxim Yegorushkin <maxim.yegorushkin@gmail.com> + +============================== + +The arc4module is available under the following, sometimes called the +"OpenBSD" license: + + Copyright (c) 1996, David Mazieres <dm@uun.org> + Copyright (c) 2008, Damien Miller <djm@openbsd.org> + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +============================================================ +Notices for file(s): +/lib/libopenjdkjvmti.dylib +/lib/libopenjdkjvmtid.dylib +/lib64/libopenjdkjvmti.dylib +/lib64/libopenjdkjvmtid.dylib +------------------------------------------------------------ +Copyright (C) 2016 The Android Open Source Project +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This file implements interfaces from the file jvmti.h. This implementation +is licensed under the same terms as the file jvmti.h. The +copyright and license information for the file jvmti.h follows. + +Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + +============================================================ +Notices for file(s): +/framework/commons-compress-1.0.jar +------------------------------------------------------------ +Apache Commons Compress +Copyright 2002-2009 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +Original BZip2 classes contributed by Keiron Liddle +<keiron@aftexsw.com>, Aftex Software to the Apache Ant project + +Original Tar classes from contributors of the Apache Ant project + +Original Zip classes from contributors of the Apache Ant project + +Original CPIO classes contributed by Markus Kuss and the jRPM project +(jrpm.sourceforge.net) + +============================================================ +Notices for file(s): /bin/sgdisk ------------------------------------------------------------ GNU GENERAL PUBLIC LICENSE @@ -2620,87 +3044,9 @@ ============================================================ Notices for file(s): -/lib64/libc++abi.a ------------------------------------------------------------- -============================================================================== -libc++abi License -============================================================================== - -The libc++abi library is dual licensed under both the University of Illinois -"BSD-Like" license and the MIT license. As a user of this code you may choose -to use it under either license. As a contributor, you agree to allow your code -to be used under both. - -Full text of the relevant licenses is included below. - -============================================================================== - -University of Illinois/NCSA -Open Source License - -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT - -All rights reserved. - -Developed by: - - LLVM Team - - University of Illinois at Urbana-Champaign - - http://llvm.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. - -============================================================================== - -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -============================================================ -Notices for file(s): +/lib/libexpat-host.dylib +/lib/libexpat.a +/lib64/libexpat-host.dylib /lib64/libexpat.a ------------------------------------------------------------ Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper @@ -2728,7 +3074,7 @@ ============================================================ Notices for file(s): /bin/sqlite3 -/lib64/libsqlite.a +/lib/libsqlite.dylib /lib64/libsqlite.dylib ------------------------------------------------------------ 2001 September 15 @@ -2743,6 +3089,44 @@ ============================================================ Notices for file(s): +/framework/conscrypt.jar +/lib/libconscrypt_openjdk_jni.dylib +/lib64/libconscrypt_openjdk_jni.dylib +------------------------------------------------------------ +Copyright 2016 The Android Open Source Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +----------------------------------------------------------------------- +This product contains a modified portion of `Netty`, a configurable network +stack in Java, which can be obtained at: + + * LICENSE: + * licenses/LICENSE.netty.txt (Apache License 2.0) + * HOMEPAGE: + * http://netty.io/ + +This product contains a modified portion of `Apache Harmony`, modular Java runtime, +which can be obtained at: + + * LICENSE: + * licenses/LICENSE.harmony.txt (Apache License 2.0) + * HOMEPAGE: + * https://harmony.apache.org/ + +============================================================ +Notices for file(s): +/bin/fontchain_linter /lib64/libplatformprotos.dylib ------------------------------------------------------------ ========================================================================= @@ -3083,8 +3467,263 @@ ============================================================ Notices for file(s): +/bin/adb +------------------------------------------------------------ + + Copyright (c) 2006-2009, The Android Open Source Project + Copyright 2006, Brian Swetland <swetland@frotz.net> + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +------------------------------------------------------------ +libwinpthread license: +------------------------------------------------------------ +Copyright (c) 2011 mingw-w64 project + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +/* + * Parts of this library are derived by: + * + * Posix Threads library for Microsoft Windows + * + * Use at own risk, there is no implied warranty to this code. + * It uses undocumented features of Microsoft Windows that can change + * at any time in the future. + * + * (C) 2010 Lockless Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Lockless Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +============================================================ +Notices for file(s): /bin/llvm-rs-cc -/lib64/libslang.a ------------------------------------------------------------ ========================= NOTICE file for slang.git @@ -3428,6 +4067,8 @@ ============================================================ Notices for file(s): +/lib/libc++.dylib +/lib/libc++_static.a /lib64/libc++.dylib /lib64/libc++_static.a ------------------------------------------------------------ @@ -3510,16 +4151,48 @@ ============================================================ Notices for file(s): +/lib64/libbrotli.dylib +------------------------------------------------------------ +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +============================================================ +Notices for file(s): /bin/aapt /bin/aidl +/bin/dexdump /bin/dx +/bin/showmap /framework/dx.jar +/framework/jasmin.jar +/lib/libaapt.a +/lib/libandroidfw.a +/lib/libcutils.a +/lib/libcutils.dylib +/lib/libnativehelper.dylib +/lib/libutils.a /lib64/libaapt.a -/lib64/libaidl-common.a /lib64/libandroidfw.a /lib64/libcutils.a /lib64/libcutils.dylib -/lib64/libinstrumentation.a +/lib64/libnativehelper.dylib /lib64/libutils.a ------------------------------------------------------------ @@ -3715,1073 +4388,544 @@ ============================================================ Notices for file(s): -/lib64/libpng.a +/framework/jdiff.jar ------------------------------------------------------------ -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE -========================================= + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 -PNG Reference Library License version 2 ---------------------------------------- + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - * Copyright (c) 1995-2019 The PNG Reference Library Authors. - * Copyright (c) 2018-2019 Cosmin Truta. - * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. - * Copyright (c) 1996-1997 Andreas Dilger. - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] -The software is supplied "as is", without warranty of any kind, -express or implied, including, without limitation, the warranties -of merchantability, fitness for a particular purpose, title, and -non-infringement. In no event shall the Copyright owners, or -anyone distributing the software, be liable for any damages or -other liability, whether in contract, tort or otherwise, arising -from, out of, or in connection with the software, or the use or -other dealings in the software, even if advised of the possibility -of such damage. + Preamble -Permission is hereby granted to use, copy, modify, and distribute -this software, or portions hereof, for any purpose, without fee, -subject to the following restrictions: + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. - 1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you - use this software in a product, an acknowledgment in the product - documentation would be appreciated, but is not required. + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. - 2. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! -PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) ------------------------------------------------------------------------ -libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are -Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are -derived from libpng-1.0.6, and are distributed according to the same -disclaimer and license as libpng-1.0.6 with the following individuals -added to the list of Contributing Authors: - - Simon-Pierre Cadieux - Eric S. Raymond - Mans Rullgard - Cosmin Truta - Gilles Vollant - James Yu - Mandar Sahastrabuddhe - Google Inc. - Vadim Barkov - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of - the library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is - with the user. - -Some files in the "contrib" directory and some configure-generated -files that are distributed with libpng have other copyright owners, and -are released under other open source licenses. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from -libpng-0.96, and are distributed according to the same disclaimer and -license as libpng-0.96, with the following individuals added to the -list of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, -and are distributed according to the same disclaimer and license as -libpng-0.88, with the following individuals added to the list of -Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -Some files in the "scripts" directory have other copyright owners, -but are released under this license. - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing -Authors and Group 42, Inc. disclaim all warranties, expressed or -implied, including, without limitation, the warranties of -merchantability and of fitness for any purpose. The Contributing -Authors and Group 42, Inc. assume no liability for direct, indirect, -incidental, special, exemplary, or consequential damages, which may -result from the use of the PNG Reference Library, even if advised of -the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - - 1. The origin of this source code must not be misrepresented. - - 2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, -without fee, and encourage the use of this source code as a component -to supporting the PNG file format in commercial products. If you use -this source code in a product, acknowledgment is not required but would -be appreciated. - -============================================================ -Notices for file(s): -/lib64/libfec.a -/lib64/libsquashfs_utils.a ------------------------------------------------------------- - - Copyright (c) 2015, The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS ============================================================ Notices for file(s): -/bin/blk_alloc_to_base_fs -/bin/mke2fs.conf -/bin/mkf2fsuserimg.sh -/bin/mkuserimg_mke2fs -/lib64/libext4_utils.a -/lib64/libext4_utils.dylib +/framework/doclava.jar ------------------------------------------------------------ + + Copyright (C) 2010 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. - Copyright (c) 2010, The Android Open Source Project - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. +====================================================================== - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +jQuery 1.2.6 - New Wave Javascript +Copyright (c) 2008 John Resig (jquery.com) +Dual licensed under the MIT (MIT-LICENSE.txt) +and GPL (GPL-LICENSE.txt) licenses. - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - -============================================================ -Notices for file(s): -/lib64/fmtlib.a ------------------------------------------------------------- -Copyright (c) 2012 - 2016, Victor Zverovich - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================================ -Notices for file(s): -/lib64/libgflags.a ------------------------------------------------------------- -Copyright (c) 2006, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================================ -Notices for file(s): -/lib64/libgtest.a -/lib64/libgtest_host.a -/lib64/libgtest_prod.a ------------------------------------------------------------- -Copyright 2008, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================================ -Notices for file(s): -/lib64/libpcre2.a -/lib64/libpcre2.dylib ------------------------------------------------------------- -PCRE LICENCE ------------- - -PCRE is a library of functions to support regular expressions whose syntax -and semantics are as close as possible to those of the Perl 5 language. - -Release 8 of PCRE is distributed under the terms of the "BSD" licence, as -specified below. The documentation for PCRE, supplied in the "doc" -directory, is distributed under the same terms as the software itself. - -The basic library functions are written in C and are freestanding. Also -included in the distribution is a set of C++ wrapper functions, and a -just-in-time compiler that can be used to optimize pattern matching. These -are both optional features that can be omitted when the library is built. - - -THE BASIC LIBRARY FUNCTIONS ---------------------------- - -Written by: Philip Hazel -Email local part: ph10 -Email domain: cam.ac.uk - -University of Cambridge Computing Service, -Cambridge, England. - -Copyright (c) 1997-2014 University of Cambridge -All rights reserved. - - -PCRE JUST-IN-TIME COMPILATION SUPPORT -------------------------------------- - -Written by: Zoltan Herczeg -Email local part: hzmester -Emain domain: freemail.hu - -Copyright(c) 2010-2014 Zoltan Herczeg -All rights reserved. - - -STACK-LESS JUST-IN-TIME COMPILER --------------------------------- - -Written by: Zoltan Herczeg -Email local part: hzmester -Emain domain: freemail.hu - -Copyright(c) 2009-2014 Zoltan Herczeg -All rights reserved. - - -THE C++ WRAPPER FUNCTIONS -------------------------- - -Contributed by: Google Inc. - -Copyright (c) 2007-2012, Google Inc. -All rights reserved. - - -THE "BSD" LICENCE ------------------ - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of the University of Cambridge nor the name of Google - Inc. nor the names of their contributors may be used to endorse or - promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -End - -============================================================ -Notices for file(s): -/lib64/libcrypto-host.dylib -/lib64/libcrypto.a ------------------------------------------------------------- -BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL -licensing. Files that are completely new have a Google copyright and an ISC -license. This license is reproduced at the bottom of this file. - -Contributors to BoringSSL are required to follow the CLA rules for Chromium: -https://cla.developers.google.com/clas - -Files in third_party/ have their own licenses, as described therein. The MIT -license, for third_party/fiat, which, unlike other third_party directories, is -compiled into non-test libraries, is included below. - -The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the -OpenSSL License and the original SSLeay license apply to the toolkit. See below -for the actual license texts. Actually both licenses are BSD-style Open Source -licenses. In case of any license issues related to OpenSSL please contact -openssl-core@openssl.org. - -The following are Google-internal bug numbers where explicit permission from -some authors is recorded for use of their work. (This is purely for our own -record keeping.) - 27287199 - 27287880 - 27287883 - - OpenSSL License - --------------- - -/* ==================================================================== - * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - - Original SSLeay License - ----------------------- - -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - - -ISC license used for completely new code in BoringSSL: - -/* Copyright (c) 2015, Google Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ - - -The code in third_party/fiat carries the MIT license: - -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -The code in third_party/sike also carries the MIT license: - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE - - -Licenses for support code -------------------------- - -Parts of the TLS test suite are under the Go license. This code is not included -in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so -distributing code linked against BoringSSL does not trigger this license: - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -BoringSSL uses the Chromium test infrastructure to run a continuous build, -trybots etc. The scripts which manage this, and the script for generating build -metadata, are under the Chromium license. Distributing code linked against -BoringSSL does not trigger this license. - -Copyright 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================================ -Notices for file(s): -/lib64/liblz4.a ------------------------------------------------------------- -LZ4 Library -Copyright (c) 2011-2016, Yann Collet -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================================ -Notices for file(s): -/bin/minigzip -/lib64/libz-host.dylib -/lib64/libz.a ------------------------------------------------------------- -version 1.2.11, January 15th, 2017 - -Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - -============================================================ -Notices for file(s): -/bin/avbtool ------------------------------------------------------------- -Copyright 2016, The Android Open Source Project +Copyright (c) 2009 John Resig, http://jquery.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -4802,15 +4946,16 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ============================================================ Notices for file(s): -/lib64/libusb.a +/bin/depmod ------------------------------------------------------------ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -5293,7 +5438,7 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. @@ -5311,3 +5456,1346 @@ +============================================================ +Notices for file(s): +/bin/imgdiff +------------------------------------------------------------ +Copyright (C) 2009 The Android Open Source Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +bsdiff.c +bspatch.c + +Copyright 2003-2005 Colin Percival +All rights reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted providing that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +============================================================ +Notices for file(s): +/bin/minigzip +/lib/libz-host.dylib +/lib/libz.a +/lib64/libz-host.dylib +/lib64/libz.a +------------------------------------------------------------ + (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +============================================================ +Notices for file(s): +/bin/aprotoc +/framework/host-libprotobuf-java-full.jar +/framework/host-libprotobuf-java-lite.jar +/framework/host-libprotobuf-java-micro.jar +/framework/libprotobuf-java-full.jar +/lib64/libprotobuf-cpp-full.dylib +/lib64/libprotobuf-cpp-lite.dylib +/lib64/libprotoc.dylib +------------------------------------------------------------ +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Code generated by the Protocol Buffer compiler is owned by the owner +of the input file used when generating it. This code is not +standalone and requires a support library to be linked with it. This +support library is itself covered by the above license. + +============================================================ +Notices for file(s): +/lib64/libfec.dylib +/lib64/libsquashfs_utils.dylib +------------------------------------------------------------ + + Copyright (c) 2015, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + +============================================================ +Notices for file(s): +/bin/d8-compat-dx +/framework/d8-compat-dx.jar +/framework/d8.jar +------------------------------------------------------------ +Copyright (c) 2016, the R8 project authors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================ +Notices for file(s): +/bin/blk_alloc_to_base_fs +/bin/mke2fs.conf +/bin/mkuserimg_mke2fs.sh +/lib64/libext4_utils.dylib +------------------------------------------------------------ + + Copyright (c) 2010, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + +============================================================ +Notices for file(s): +/framework/emmalib.jar +------------------------------------------------------------ +Common Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S +ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was +added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules +of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative +works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, +use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the +combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered +by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the +Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other +entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole +responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the +Program, it is Recipient's responsibility to acquire that license before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this +Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, +and implied warranties or conditions of merchantability and fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost +profits; + + iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium +customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the Program. + +Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the +Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the +commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other +Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a +third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a +commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to +qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate +with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor +then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for +determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to +the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this +Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any +patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes +patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other +software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a +reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the +Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and +survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following +manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the +right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new +version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under +which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new +version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, +whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal +action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. + +============================================================ +Notices for file(s): +/lib/libgtest_host.a +/lib64/libgtest_host.a +/lib64/libgtest_prod.dylib +------------------------------------------------------------ +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================ +Notices for file(s): +/framework/easymock.jar +------------------------------------------------------------ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +============================================================ +Notices for file(s): +/lib64/libbz.dylib +------------------------------------------------------------ + +-------------------------------------------------------------------------- + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2010 Julian R Seward. All +rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Julian Seward, jseward@bzip.org +bzip2/libbzip2 version 1.0.6 of 6 September 2010 + +-------------------------------------------------------------------------- + +============================================================ +Notices for file(s): +/lib64/libpcre2.dylib +------------------------------------------------------------ +PCRE LICENCE +------------ + +PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + +Release 8 of PCRE is distributed under the terms of the "BSD" licence, as +specified below. The documentation for PCRE, supplied in the "doc" +directory, is distributed under the same terms as the software itself. + +The basic library functions are written in C and are freestanding. Also +included in the distribution is a set of C++ wrapper functions, and a +just-in-time compiler that can be used to optimize pattern matching. These +are both optional features that can be omitted when the library is built. + + +THE BASIC LIBRARY FUNCTIONS +--------------------------- + +Written by: Philip Hazel +Email local part: ph10 +Email domain: cam.ac.uk + +University of Cambridge Computing Service, +Cambridge, England. + +Copyright (c) 1997-2014 University of Cambridge +All rights reserved. + + +PCRE JUST-IN-TIME COMPILATION SUPPORT +------------------------------------- + +Written by: Zoltan Herczeg +Email local part: hzmester +Emain domain: freemail.hu + +Copyright(c) 2010-2014 Zoltan Herczeg +All rights reserved. + + +STACK-LESS JUST-IN-TIME COMPILER +-------------------------------- + +Written by: Zoltan Herczeg +Email local part: hzmester +Emain domain: freemail.hu + +Copyright(c) 2009-2014 Zoltan Herczeg +All rights reserved. + + +THE C++ WRAPPER FUNCTIONS +------------------------- + +Contributed by: Google Inc. + +Copyright (c) 2007-2012, Google Inc. +All rights reserved. + + +THE "BSD" LICENCE +----------------- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the name of Google + Inc. nor the names of their contributors may be used to endorse or + promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +End + +============================================================ +Notices for file(s): +/bin/bsdiff +------------------------------------------------------------ +This project governed by the following BSD-style licenses. Check each file +header to known the licenses applying to it: + +-------------------------------------------------------------------------------- + +Copyright 2003-2005 Colin Percival +All rights reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted providing that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +Copyright 2015 The Chromium OS Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================ +Notices for file(s): +/lib/liblz4.dylib +/lib64/liblz4.dylib +------------------------------------------------------------ +LZ4 Library +Copyright (c) 2011-2016, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================ +Notices for file(s): +/bin/avbtool +------------------------------------------------------------ +Copyright 2016, The Android Open Source Project + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================ +Notices for file(s): +/framework/bouncycastle.jar +------------------------------------------------------------ +Copyright (c) 2000-2015 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================ +Notices for file(s): +/lib64/libcrypto-host.dylib +/lib64/libssl-host.dylib +------------------------------------------------------------ + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a dual license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. Actually both licenses are BSD-style + Open Source licenses. In case of any license issues related to OpenSSL + please contact openssl-core@openssl.org. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +
diff --git a/adb b/adb index 9891dbf..e9a3b0c 100755 --- a/adb +++ b/adb Binary files differ
diff --git a/api/annotations.zip b/api/annotations.zip index 8da7375..9a44ebb 100644 --- a/api/annotations.zip +++ b/api/annotations.zip Binary files differ
diff --git a/api/api-versions.xml b/api/api-versions.xml index 16ed412..5f010bf 100644 --- a/api/api-versions.xml +++ b/api/api-versions.xml
@@ -8,19 +8,16 @@ <extends name="java/lang/Object"/> <method name="<init>()V"/> <field name="ACCEPT_HANDOVER" since="28"/> - <field name="ACCESS_BACKGROUND_LOCATION" since="29"/> <field name="ACCESS_CHECKIN_PROPERTIES"/> <field name="ACCESS_COARSE_LOCATION"/> <field name="ACCESS_FINE_LOCATION"/> <field name="ACCESS_LOCATION_EXTRA_COMMANDS"/> - <field name="ACCESS_MEDIA_LOCATION" since="29"/> <field name="ACCESS_MOCK_LOCATION" removed="23"/> <field name="ACCESS_NETWORK_STATE"/> <field name="ACCESS_NOTIFICATION_POLICY" since="23"/> <field name="ACCESS_SURFACE_FLINGER" removed="23"/> <field name="ACCESS_WIFI_STATE"/> <field name="ACCOUNT_MANAGER" since="5"/> - <field name="ACTIVITY_RECOGNITION" since="29"/> <field name="ADD_SYSTEM_SERVICE" removed="4"/> <field name="ADD_VOICEMAIL" since="14"/> <field name="ANSWER_PHONE_CALLS" since="26"/> @@ -29,8 +26,6 @@ <field name="BIND_ACCESSIBILITY_SERVICE" since="16"/> <field name="BIND_APPWIDGET" since="3"/> <field name="BIND_AUTOFILL_SERVICE" since="26"/> - <field name="BIND_CALL_REDIRECTION_SERVICE" since="29"/> - <field name="BIND_CARRIER_MESSAGING_CLIENT_SERVICE" since="29"/> <field name="BIND_CARRIER_MESSAGING_SERVICE" since="22" deprecated="23"/> <field name="BIND_CARRIER_SERVICES" since="23"/> <field name="BIND_CHOOSER_TARGET_SERVICE" since="23"/> @@ -63,13 +58,12 @@ <field name="BROADCAST_SMS" since="2"/> <field name="BROADCAST_STICKY"/> <field name="BROADCAST_WAP_PUSH" since="2"/> - <field name="CALL_COMPANION_APP" since="29"/> <field name="CALL_PHONE"/> <field name="CALL_PRIVILEGED"/> <field name="CAMERA"/> <field name="CAPTURE_AUDIO_OUTPUT" since="19"/> - <field name="CAPTURE_SECURE_VIDEO_OUTPUT" since="19" removed="29"/> - <field name="CAPTURE_VIDEO_OUTPUT" since="19" removed="29"/> + <field name="CAPTURE_SECURE_VIDEO_OUTPUT" since="19"/> + <field name="CAPTURE_VIDEO_OUTPUT" since="19"/> <field name="CHANGE_COMPONENT_ENABLED_STATE"/> <field name="CHANGE_CONFIGURATION"/> <field name="CHANGE_NETWORK_STATE"/> @@ -119,13 +113,13 @@ <field name="NFC" since="9"/> <field name="NFC_TRANSACTION_EVENT" since="28"/> <field name="PACKAGE_USAGE_STATS" since="23"/> - <field name="PERSISTENT_ACTIVITY" deprecated="15"/> - <field name="PROCESS_OUTGOING_CALLS" deprecated="29"/> + <field name="PERSISTENT_ACTIVITY" deprecated="16"/> + <field name="PROCESS_OUTGOING_CALLS"/> <field name="READ_CALENDAR"/> <field name="READ_CALL_LOG" since="16"/> <field name="READ_CONTACTS"/> <field name="READ_EXTERNAL_STORAGE" since="16"/> - <field name="READ_FRAME_BUFFER" removed="29"/> + <field name="READ_FRAME_BUFFER"/> <field name="READ_HISTORY_BOOKMARKS" since="4" removed="23"/> <field name="READ_INPUT_STATE" deprecated="16"/> <field name="READ_LOGS"/> @@ -151,8 +145,7 @@ <field name="REQUEST_DELETE_PACKAGES" since="26"/> <field name="REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" since="23"/> <field name="REQUEST_INSTALL_PACKAGES" since="23"/> - <field name="REQUEST_PASSWORD_COMPLEXITY" since="29"/> - <field name="RESTART_PACKAGES" deprecated="15"/> + <field name="RESTART_PACKAGES" deprecated="16"/> <field name="SEND_RESPOND_VIA_MESSAGE" since="18"/> <field name="SEND_SMS"/> <field name="SET_ACTIVITY_WATCHER" removed="23"/> @@ -162,7 +155,7 @@ <field name="SET_DEBUG_APP"/> <field name="SET_ORIENTATION" removed="23"/> <field name="SET_POINTER_SPEED" since="13" removed="23"/> - <field name="SET_PREFERRED_APPLICATIONS" deprecated="15"/> + <field name="SET_PREFERRED_APPLICATIONS" deprecated="16"/> <field name="SET_PROCESS_FOREGROUND" removed="4"/> <field name="SET_PROCESS_LIMIT"/> <field name="SET_TIME" since="8"/> @@ -170,8 +163,6 @@ <field name="SET_WALLPAPER"/> <field name="SET_WALLPAPER_HINTS"/> <field name="SIGNAL_PERSISTENT_PROCESSES"/> - <field name="SMS_FINANCIAL_TRANSACTIONS" since="29"/> - <field name="START_VIEW_PERMISSION_USAGE" since="29"/> <field name="STATUS_BAR"/> <field name="SUBSCRIBED_FEEDS_READ" removed="23"/> <field name="SUBSCRIBED_FEEDS_WRITE" removed="23"/> @@ -182,7 +173,6 @@ <field name="USE_BIOMETRIC" since="28"/> <field name="USE_CREDENTIALS" since="5" removed="23"/> <field name="USE_FINGERPRINT" since="23" deprecated="28"/> - <field name="USE_FULL_SCREEN_INTENT" since="29"/> <field name="USE_SIP" since="9"/> <field name="VIBRATE"/> <field name="WAKE_LOCK"/> @@ -208,14 +198,13 @@ <method name="<init>()V"/> <field name="ACCESSIBILITY_FEATURES" since="18" removed="23"/> <field name="ACCOUNTS" removed="23"/> - <field name="ACTIVITY_RECOGNITION" since="29"/> <field name="AFFECTS_BATTERY" since="17" removed="23"/> <field name="APP_INFO" since="17" removed="23"/> <field name="AUDIO_SETTINGS" since="17" removed="23"/> <field name="BLUETOOTH_NETWORK" since="17" removed="23"/> <field name="BOOKMARKS" since="17" removed="23"/> <field name="CALENDAR" since="17"/> - <field name="CALL_LOG" since="28"/> + <field name="CALL_LOG" since="29"/> <field name="CAMERA" since="17"/> <field name="CONTACTS" since="23"/> <field name="COST_MONEY" removed="23"/> @@ -341,7 +330,6 @@ <field name="alertDialogTheme" since="11"/> <field name="alignmentMode" since="14"/> <field name="allContactsName" since="11"/> - <field name="allowAudioPlaybackCapture" since="29"/> <field name="allowBackup" since="4"/> <field name="allowClearUserData"/> <field name="allowEmbedded" since="20"/> @@ -385,7 +373,7 @@ <field name="autoSizeStepGranularity" since="26"/> <field name="autoSizeTextType" since="26"/> <field name="autoStart" since="7"/> - <field name="autoText" deprecated="15"/> + <field name="autoText" deprecated="16"/> <field name="autoUrlDetect" since="4"/> <field name="autoVerify" since="23"/> <field name="autofillHints" since="26"/> @@ -445,7 +433,7 @@ <field name="canRetrieveWindowContent" since="14"/> <field name="candidatesTextStyleSpans" since="3"/> <field name="cantSaveState" since="28"/> - <field name="capitalize" deprecated="15"/> + <field name="capitalize" deprecated="16"/> <field name="category" since="19"/> <field name="centerBright"/> <field name="centerColor"/> @@ -478,7 +466,7 @@ <field name="clipOrientation"/> <field name="clipToPadding"/> <field name="closeIcon" since="21"/> - <field name="codes" since="3" deprecated="29"/> + <field name="codes" since="3"/> <field name="collapseColumns"/> <field name="collapseContentDescription" since="22"/> <field name="collapseIcon" since="24"/> @@ -616,21 +604,19 @@ <field name="editTextColor" since="11"/> <field name="editTextPreferenceStyle"/> <field name="editTextStyle"/> - <field name="editable" deprecated="15"/> + <field name="editable" deprecated="16"/> <field name="editorExtras" since="3"/> <field name="elegantTextHeight" since="21"/> <field name="elevation" since="21"/> <field name="ellipsize"/> <field name="ems"/> <field name="enableVrMode" since="24"/> - <field name="enabled" deprecated="15"/> + <field name="enabled"/> <field name="end" since="23"/> <field name="endColor"/> <field name="endX" since="24"/> <field name="endY" since="24"/> <field name="endYear" deprecated="16"/> - <field name="enforceNavigationBarContrast" since="29"/> - <field name="enforceStatusBarContrast" since="29"/> <field name="enterFadeDuration" since="11"/> <field name="entries"/> <field name="entryValues"/> @@ -657,7 +643,7 @@ <field name="fadeEnabled" since="4"/> <field name="fadeOffset" since="4"/> <field name="fadeScrollbars" since="5"/> - <field name="fadingEdge" deprecated="15"/> + <field name="fadingEdge"/> <field name="fadingEdgeLength"/> <field name="fadingMode" since="19"/> <field name="fallbackLineSpacing" since="28"/> @@ -701,12 +687,9 @@ <field name="fontVariationSettings" since="28"/> <field name="fontWeight" since="26"/> <field name="footerDividersEnabled" since="3"/> - <field name="forceDarkAllowed" since="29"/> <field name="forceHasOverlappingRendering" since="24"/> - <field name="forceUriPermissions" since="29"/> <field name="foreground"/> <field name="foregroundGravity"/> - <field name="foregroundServiceType" since="29"/> <field name="foregroundTint" since="21"/> <field name="foregroundTintMode" since="21"/> <field name="format"/> @@ -764,7 +747,6 @@ <field name="hapticFeedbackEnabled" since="3"/> <field name="hardwareAccelerated" since="11"/> <field name="hasCode"/> - <field name="hasFragileUserData" since="29"/> <field name="headerAmPmTextAppearance" since="21" deprecated="23"/> <field name="headerBackground"/> <field name="headerDayOfMonthTextAppearance" since="21" deprecated="23"/> @@ -778,7 +760,7 @@ <field name="homeAsUpIndicator" since="11"/> <field name="homeLayout" since="11"/> <field name="horizontalDivider"/> - <field name="horizontalGap" since="3" deprecated="29"/> + <field name="horizontalGap" since="3"/> <field name="horizontalScrollViewStyle" since="11"/> <field name="horizontalSpacing"/> <field name="host"/> @@ -786,13 +768,12 @@ <field name="hotSpotY" since="24"/> <field name="hyphenationFrequency" since="23"/> <field name="icon"/> - <field name="iconPreview" since="3" deprecated="29"/> + <field name="iconPreview" since="3"/> <field name="iconSpaceReserved" since="26"/> <field name="iconTint" since="26"/> <field name="iconTintMode" since="26"/> <field name="iconifiedByDefault" since="11"/> <field name="id"/> - <field name="identifier" since="29"/> <field name="ignoreGravity"/> <field name="imageButtonStyle"/> <field name="imageWellStyle"/> @@ -824,13 +805,12 @@ <field name="indicatorRight"/> <field name="indicatorStart" since="18"/> <field name="inflatedId"/> - <field name="inheritShowWhenLocked" since="29"/> <field name="initOrder"/> <field name="initialKeyguardLayout" since="17"/> <field name="initialLayout" since="3"/> <field name="innerRadius" since="3"/> <field name="innerRadiusRatio"/> - <field name="inputMethod" deprecated="15"/> + <field name="inputMethod" deprecated="16"/> <field name="inputType" since="3"/> <field name="inset" since="21"/> <field name="insetBottom"/> @@ -838,7 +818,6 @@ <field name="insetRight"/> <field name="insetTop"/> <field name="installLocation" since="8"/> - <field name="interactiveUiTimeout" since="29"/> <field name="interpolator"/> <field name="isAlwaysSyncable" since="11"/> <field name="isAsciiCapable" since="19"/> @@ -847,13 +826,11 @@ <field name="isFeatureSplit" since="26"/> <field name="isGame" since="21"/> <field name="isIndicator"/> - <field name="isLightTheme" since="29"/> - <field name="isModifier" since="3" deprecated="29"/> - <field name="isRepeatable" since="3" deprecated="29"/> + <field name="isModifier" since="3"/> + <field name="isRepeatable" since="3"/> <field name="isScrollContainer" since="3"/> - <field name="isSplitRequired" since="29"/> <field name="isStatic" since="26"/> - <field name="isSticky" since="3" deprecated="29"/> + <field name="isSticky" since="3"/> <field name="isolatedProcess" since="16"/> <field name="isolatedSplits" since="26"/> <field name="itemBackground"/> @@ -863,27 +840,27 @@ <field name="justificationMode" since="26"/> <field name="keepScreenOn"/> <field name="key"/> - <field name="keyBackground" since="3" deprecated="29"/> - <field name="keyEdgeFlags" since="3" deprecated="29"/> - <field name="keyHeight" since="3" deprecated="29"/> - <field name="keyIcon" since="3" deprecated="29"/> - <field name="keyLabel" since="3" deprecated="29"/> - <field name="keyOutputText" since="3" deprecated="29"/> - <field name="keyPreviewHeight" since="3" deprecated="29"/> - <field name="keyPreviewLayout" since="3" deprecated="29"/> - <field name="keyPreviewOffset" since="3" deprecated="29"/> + <field name="keyBackground" since="3"/> + <field name="keyEdgeFlags" since="3"/> + <field name="keyHeight" since="3"/> + <field name="keyIcon" since="3"/> + <field name="keyLabel" since="3"/> + <field name="keyOutputText" since="3"/> + <field name="keyPreviewHeight" since="3"/> + <field name="keyPreviewLayout" since="3"/> + <field name="keyPreviewOffset" since="3"/> <field name="keySet" since="19"/> - <field name="keyTextColor" since="3" deprecated="29"/> - <field name="keyTextSize" since="3" deprecated="29"/> - <field name="keyWidth" since="3" deprecated="29"/> + <field name="keyTextColor" since="3"/> + <field name="keyTextSize" since="3"/> + <field name="keyWidth" since="3"/> <field name="keyboardLayout" since="16"/> - <field name="keyboardMode" since="3" deprecated="29"/> + <field name="keyboardMode" since="3"/> <field name="keyboardNavigationCluster" since="26"/> <field name="keycode"/> <field name="killAfterRestore" since="5"/> <field name="label"/> <field name="labelFor" since="17"/> - <field name="labelTextSize" since="3" deprecated="29"/> + <field name="labelTextSize" since="3"/> <field name="languageTag" since="24"/> <field name="largeHeap" since="11"/> <field name="largeScreens" since="4"/> @@ -1001,7 +978,6 @@ <field name="menuCategory"/> <field name="mimeType"/> <field name="min" since="26"/> - <field name="minAspectRatio" since="29"/> <field name="minDate" since="11"/> <field name="minEms"/> <field name="minHeight"/> @@ -1021,7 +997,7 @@ <field name="multiprocess"/> <field name="name"/> <field name="navigationBarColor" since="21"/> - <field name="navigationBarDividerColor" since="27"/> + <field name="navigationBarDividerColor" since="28"/> <field name="navigationContentDescription" since="21"/> <field name="navigationIcon" since="21"/> <field name="navigationMode" since="11"/> @@ -1035,7 +1011,6 @@ <field name="nextFocusRight"/> <field name="nextFocusUp"/> <field name="noHistory" since="3"/> - <field name="nonInteractiveUiTimeout" since="29"/> <field name="normalScreens" since="4"/> <field name="notificationTimeout" since="14"/> <field name="numColumns"/> @@ -1045,17 +1020,13 @@ <field name="numbersInnerTextColor" since="23"/> <field name="numbersSelectorColor" since="21"/> <field name="numbersTextColor" since="21"/> - <field name="numeric" deprecated="15"/> + <field name="numeric" deprecated="16"/> <field name="numericModifiers" since="26"/> <field name="numericShortcut"/> <field name="offset" since="24"/> <field name="onClick" since="4"/> <field name="oneshot"/> <field name="opacity" since="11"/> - <field name="opticalInsetBottom" since="29"/> - <field name="opticalInsetLeft" since="29"/> - <field name="opticalInsetRight" since="29"/> - <field name="opticalInsetTop" since="29"/> <field name="order"/> <field name="orderInCategory"/> <field name="ordering" since="11"/> @@ -1071,7 +1042,6 @@ <field name="overlapAnchor" since="21"/> <field name="overridesImplicitlyEnabledSubtype" since="14"/> <field name="packageNames" since="14"/> - <field name="packageType" since="29"/> <field name="padding"/> <field name="paddingBottom"/> <field name="paddingEnd" since="17"/> @@ -1088,7 +1058,7 @@ <field name="panelFullBackground"/> <field name="panelTextAppearance"/> <field name="parentActivityName" since="16"/> - <field name="password" deprecated="15"/> + <field name="password" deprecated="16"/> <field name="path"/> <field name="pathData" since="21"/> <field name="pathPattern"/> @@ -1102,18 +1072,18 @@ <field name="persistent"/> <field name="persistentDrawingCache"/> <field name="persistentWhenFeatureAvailable" since="26"/> - <field name="phoneNumber" deprecated="15"/> + <field name="phoneNumber" deprecated="16"/> <field name="pivotX"/> <field name="pivotY"/> <field name="pointerIcon" since="24"/> <field name="popupAnimationStyle" since="9"/> <field name="popupBackground"/> - <field name="popupCharacters" since="3" deprecated="29"/> + <field name="popupCharacters" since="3"/> <field name="popupElevation" since="21"/> <field name="popupEnterTransition" since="24"/> <field name="popupExitTransition" since="24"/> - <field name="popupKeyboard" since="3" deprecated="29"/> - <field name="popupLayout" since="3" deprecated="29"/> + <field name="popupKeyboard" since="3"/> + <field name="popupLayout" since="3"/> <field name="popupMenuStyle" since="11"/> <field name="popupTheme" since="21"/> <field name="popupWindowStyle"/> @@ -1182,7 +1152,6 @@ <field name="reqKeyboardType" since="3"/> <field name="reqNavigation" since="3"/> <field name="reqTouchScreen" since="3"/> - <field name="requestLegacyExternalStorage" since="29"/> <field name="requireDeviceUnlock" since="19"/> <field name="required" since="5"/> <field name="requiredAccountType" since="18"/> @@ -1197,7 +1166,7 @@ <field name="resizeableActivity" since="24"/> <field name="resource"/> <field name="restoreAnyVersion" since="8"/> - <field name="restoreNeedsApplication" since="5" deprecated="15"/> + <field name="restoreNeedsApplication" since="5" deprecated="16"/> <field name="restrictedAccountType" since="18"/> <field name="restrictionType" since="21"/> <field name="resumeWhilePausing" since="21"/> @@ -1213,7 +1182,7 @@ <field name="roundIcon" since="25"/> <field name="rowCount" since="14"/> <field name="rowDelay"/> - <field name="rowEdgeFlags" since="3" deprecated="29"/> + <field name="rowEdgeFlags" since="3"/> <field name="rowHeight"/> <field name="rowOrderPreserved" since="14"/> <field name="saveEnabled"/> @@ -1245,7 +1214,7 @@ <field name="scrollbarTrackVertical"/> <field name="scrollbars"/> <field name="scrollingCache"/> - <field name="searchButtonText" deprecated="15"/> + <field name="searchButtonText" deprecated="16"/> <field name="searchHintIcon" since="22"/> <field name="searchIcon" since="21"/> <field name="searchMode"/> @@ -1261,7 +1230,6 @@ <field name="secondaryProgress"/> <field name="secondaryProgressTint" since="21"/> <field name="secondaryProgressTintMode" since="21"/> - <field name="secureElementName" since="29"/> <field name="seekBarStyle"/> <field name="segmentedButtonStyle" since="11"/> <field name="selectAllOnFocus"/> @@ -1270,10 +1238,8 @@ <field name="selectableItemBackgroundBorderless" since="21"/> <field name="selectedDateVerticalBar" since="11" deprecated="23"/> <field name="selectedWeekBackgroundColor" since="11" deprecated="23"/> - <field name="selectionDividerHeight" since="29"/> <field name="sessionService" since="21"/> <field name="settingsActivity" since="3"/> - <field name="settingsSliceUri" since="29"/> <field name="setupActivity" since="21"/> <field name="shadowColor"/> <field name="shadowDx"/> @@ -1281,9 +1247,8 @@ <field name="shadowRadius"/> <field name="shape"/> <field name="shareInterpolator"/> - <field name="sharedUserId" deprecated="29"/> - <field name="sharedUserLabel" since="3" deprecated="29"/> - <field name="shell" since="29"/> + <field name="sharedUserId"/> + <field name="sharedUserLabel" since="3"/> <field name="shortcutDisabledMessage" since="25"/> <field name="shortcutId" since="25"/> <field name="shortcutLongLabel" since="25"/> @@ -1301,7 +1266,7 @@ <field name="showWhenLocked" since="27"/> <field name="shownWeekCount" since="11" deprecated="23"/> <field name="shrinkColumns"/> - <field name="singleLine" deprecated="15"/> + <field name="singleLine" deprecated="16"/> <field name="singleLineTitle" since="26"/> <field name="singleUser" since="17"/> <field name="slideEdge" since="21"/> @@ -1350,7 +1315,7 @@ <field name="state_focused"/> <field name="state_hovered" since="14"/> <field name="state_last"/> - <field name="state_long_pressable" since="3" deprecated="29"/> + <field name="state_long_pressable" since="3"/> <field name="state_middle"/> <field name="state_multiline" since="11"/> <field name="state_pressed"/> @@ -1389,7 +1354,6 @@ <field name="supportsAssist" since="23"/> <field name="supportsLaunchVoiceAssistFromKeyguard" since="23"/> <field name="supportsLocalInteraction" since="24"/> - <field name="supportsMultipleDisplays" since="29"/> <field name="supportsPictureInPicture" since="24"/> <field name="supportsRtl" since="17"/> <field name="supportsSwitchingToNextInputMethod" since="19"/> @@ -1414,7 +1378,7 @@ <field name="targetName" since="21"/> <field name="targetPackage"/> <field name="targetProcesses" since="26"/> - <field name="targetSandboxVersion" since="26" deprecated="29"/> + <field name="targetSandboxVersion" since="26"/> <field name="targetSdkVersion" since="4"/> <field name="taskAffinity"/> <field name="taskCloseEnterAnimation"/> @@ -1479,7 +1443,6 @@ <field name="textFilterEnabled"/> <field name="textFontWeight" since="28"/> <field name="textIsSelectable" since="11"/> - <field name="textLocale" since="29"/> <field name="textOff"/> <field name="textOn"/> <field name="textScaleX"/> @@ -1570,9 +1533,7 @@ <field name="unselectedAlpha"/> <field name="updatePeriodMillis" since="3"/> <field name="use32bitAbi" since="24"/> - <field name="useAppZygote" since="29"/> <field name="useDefaultMargins" since="14"/> - <field name="useEmbeddedDex" since="29"/> <field name="useIntrinsicSizeAsMinimum" since="11"/> <field name="useLevel"/> <field name="userVisible" since="5"/> @@ -1588,9 +1549,9 @@ <field name="versionCodeMajor" since="28"/> <field name="versionMajor" since="28"/> <field name="versionName"/> - <field name="verticalCorrection" since="3" deprecated="29"/> + <field name="verticalCorrection" since="3"/> <field name="verticalDivider"/> - <field name="verticalGap" since="3" deprecated="29"/> + <field name="verticalGap" since="3"/> <field name="verticalScrollbarPosition" since="11"/> <field name="verticalSpacing"/> <field name="viewportHeight" since="21"/> @@ -1650,8 +1611,8 @@ <field name="windowHideAnimation"/> <field name="windowIsFloating"/> <field name="windowIsTranslucent"/> - <field name="windowLayoutInDisplayCutoutMode" since="27"/> - <field name="windowLightNavigationBar" since="27"/> + <field name="windowLayoutInDisplayCutoutMode" since="28"/> + <field name="windowLightNavigationBar" since="28"/> <field name="windowLightStatusBar" since="23"/> <field name="windowMinWidthMajor" since="11"/> <field name="windowMinWidthMinor" since="11"/> @@ -1684,7 +1645,6 @@ <field name="yearListSelectorColor" since="21" deprecated="23"/> <field name="yesNoPreferenceStyle"/> <field name="zAdjustment"/> - <field name="zygotePreloadName" since="29"/> </class> <class name="android/R$bool" since="3"> <extends name="java/lang/Object"/> @@ -1887,14 +1847,14 @@ <field name="stat_sys_download"/> <field name="stat_sys_download_done"/> <field name="stat_sys_headset"/> - <field name="stat_sys_phone_call" deprecated="15"/> - <field name="stat_sys_phone_call_forward" deprecated="15"/> - <field name="stat_sys_phone_call_on_hold" deprecated="15"/> + <field name="stat_sys_phone_call" deprecated="16"/> + <field name="stat_sys_phone_call_forward" deprecated="16"/> + <field name="stat_sys_phone_call_on_hold" deprecated="16"/> <field name="stat_sys_speakerphone"/> <field name="stat_sys_upload"/> <field name="stat_sys_upload_done"/> - <field name="stat_sys_vp_phone_call" since="4" deprecated="15"/> - <field name="stat_sys_vp_phone_call_on_hold" since="4" deprecated="15"/> + <field name="stat_sys_vp_phone_call" since="4" deprecated="16"/> + <field name="stat_sys_vp_phone_call_on_hold" since="4" deprecated="16"/> <field name="stat_sys_warning"/> <field name="status_bar_item_app_background"/> <field name="status_bar_item_background"/> @@ -1921,10 +1881,6 @@ <field name="accessibilityActionContextClick" since="23"/> <field name="accessibilityActionHideTooltip" since="28"/> <field name="accessibilityActionMoveWindow" since="26"/> - <field name="accessibilityActionPageDown" since="29"/> - <field name="accessibilityActionPageLeft" since="29"/> - <field name="accessibilityActionPageRight" since="29"/> - <field name="accessibilityActionPageUp" since="29"/> <field name="accessibilityActionScrollDown" since="23"/> <field name="accessibilityActionScrollLeft" since="23"/> <field name="accessibilityActionScrollRight" since="23"/> @@ -1959,7 +1915,7 @@ <field name="input"/> <field name="inputArea" since="3"/> <field name="inputExtractEditText" since="3"/> - <field name="keyboardView" since="3" deprecated="29"/> + <field name="keyboardView" since="3"/> <field name="list"/> <field name="list_container" since="24"/> <field name="mask" since="21"/> @@ -2282,7 +2238,6 @@ <field name="TextAppearance_WindowTitle"/> <field name="Theme"/> <field name="ThemeOverlay" since="21"/> - <field name="ThemeOverlay_DeviceDefault_Accent_DayNight" since="29"/> <field name="ThemeOverlay_Material" since="21"/> <field name="ThemeOverlay_Material_ActionBar" since="21"/> <field name="ThemeOverlay_Material_Dark" since="21"/> @@ -2294,7 +2249,6 @@ <field name="Theme_Black_NoTitleBar"/> <field name="Theme_Black_NoTitleBar_Fullscreen"/> <field name="Theme_DeviceDefault" since="14"/> - <field name="Theme_DeviceDefault_DayNight" since="29"/> <field name="Theme_DeviceDefault_Dialog" since="14"/> <field name="Theme_DeviceDefault_DialogWhenLarge" since="14"/> <field name="Theme_DeviceDefault_DialogWhenLarge_NoActionBar" since="14"/> @@ -2672,7 +2626,7 @@ <field name="Widget_Holo_WebView" since="11"/> <field name="Widget_ImageButton"/> <field name="Widget_ImageWell"/> - <field name="Widget_KeyboardView" since="3" deprecated="29"/> + <field name="Widget_KeyboardView" since="3"/> <field name="Widget_ListPopupWindow" since="11"/> <field name="Widget_ListView"/> <field name="Widget_ListView_DropDown"/> @@ -2856,6 +2810,7 @@ </class> <class name="android/accessibilityservice/AccessibilityButtonController" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="isAccessibilityButtonAvailable()Z"/> <method name="registerAccessibilityButtonCallback(Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;)V"/> <method name="registerAccessibilityButtonCallback(Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;)V"/> @@ -2916,7 +2871,6 @@ <field name="SERVICE_META_DATA" since="14"/> <field name="SHOW_MODE_AUTO" since="24"/> <field name="SHOW_MODE_HIDDEN" since="24"/> - <field name="SHOW_MODE_IGNORE_HARD_KEYBOARD" since="29"/> </class> <class name="android/accessibilityservice/AccessibilityService$GestureResultCallback" since="24"> <extends name="java/lang/Object"/> @@ -2926,6 +2880,8 @@ </class> <class name="android/accessibilityservice/AccessibilityService$MagnificationController" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/accessibilityservice/AccessibilityService;Ljava/lang/Object;)V" since="29"/> <method name="addListener(Landroid/accessibilityservice/AccessibilityService$MagnificationController$OnMagnificationChangedListener;)V"/> <method name="addListener(Landroid/accessibilityservice/AccessibilityService$MagnificationController$OnMagnificationChangedListener;Landroid/os/Handler;)V"/> <method name="getCenterX()F"/> @@ -2943,6 +2899,8 @@ </class> <class name="android/accessibilityservice/AccessibilityService$SoftKeyboardController" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/accessibilityservice/AccessibilityService;Ljava/lang/Object;)V" since="29"/> <method name="addOnShowModeChangedListener(Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController$OnShowModeChangedListener;)V"/> <method name="addOnShowModeChangedListener(Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController$OnShowModeChangedListener;Landroid/os/Handler;)V"/> <method name="getShowMode()I"/> @@ -2964,14 +2922,10 @@ <method name="getCapabilities()I" since="18"/> <method name="getDescription()Ljava/lang/String;" since="14" deprecated="16"/> <method name="getId()Ljava/lang/String;" since="14"/> - <method name="getInteractiveUiTimeoutMillis()I" since="29"/> - <method name="getNonInteractiveUiTimeoutMillis()I" since="29"/> <method name="getResolveInfo()Landroid/content/pm/ResolveInfo;" since="14"/> <method name="getSettingsActivityName()Ljava/lang/String;" since="14"/> <method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/String;" since="16"/> <method name="loadSummary(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" since="26"/> - <method name="setInteractiveUiTimeoutMillis(I)V" since="29"/> - <method name="setNonInteractiveUiTimeoutMillis(I)V" since="29"/> <field name="CAPABILITY_CAN_CONTROL_MAGNIFICATION" since="24"/> <field name="CAPABILITY_CAN_PERFORM_GESTURES" since="24"/> <field name="CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY" since="18" deprecated="26"/> @@ -2995,7 +2949,6 @@ <field name="FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY" since="18" deprecated="26"/> <field name="FLAG_REQUEST_FILTER_KEY_EVENTS" since="18"/> <field name="FLAG_REQUEST_FINGERPRINT_GESTURES" since="26"/> - <field name="FLAG_REQUEST_SHORTCUT_WARNING_DIALOG_SPOKEN_FEEDBACK" since="29"/> <field name="FLAG_REQUEST_TOUCH_EXPLORATION_MODE" since="16"/> <field name="FLAG_RETRIEVE_INTERACTIVE_WINDOWS" since="21"/> <field name="eventTypes"/> @@ -3006,6 +2959,7 @@ </class> <class name="android/accessibilityservice/FingerprintGestureController" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="isGestureDetectionAvailable()Z"/> <method name="registerFingerprintGestureCallback(Landroid/accessibilityservice/FingerprintGestureController$FingerprintGestureCallback;Landroid/os/Handler;)V"/> <method name="unregisterFingerprintGestureCallback(Landroid/accessibilityservice/FingerprintGestureController$FingerprintGestureCallback;)V"/> @@ -3022,6 +2976,7 @@ </class> <class name="android/accessibilityservice/GestureDescription" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getMaxGestureDuration()J"/> <method name="getMaxStrokeCount()I"/> <method name="getStroke(I)Landroid/accessibilityservice/GestureDescription$StrokeDescription;"/> @@ -3088,6 +3043,7 @@ </class> <class name="android/accounts/AccountManager" since="5"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addAccount(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;"/> <method name="addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z"/> <method name="addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;)Z" since="26"/> @@ -3107,7 +3063,7 @@ <method name="getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;" since="18"/> <method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;"/> <method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" since="14"/> - <method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" deprecated="15"/> + <method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" deprecated="16"/> <method name="getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;"/> <method name="getAuthenticatorTypes()[Landroid/accounts/AuthenticatorDescription;"/> <method name="getPackagesAndVisibilityForAccount(Landroid/accounts/Account;)Ljava/util/Map;" since="26"/> @@ -3308,6 +3264,8 @@ </class> <class name="android/animation/AnimatorSet$Builder" since="11"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/animation/AnimatorSet;)V" removed="29"/> + <method name="<init>(Landroid/animation/AnimatorSet;Landroid/animation/Animator;)V" since="29"/> <method name="after(J)Landroid/animation/AnimatorSet$Builder;"/> <method name="after(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;"/> <method name="before(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;"/> @@ -3453,6 +3411,8 @@ <class name="android/animation/PropertyValuesHolder" since="11"> <extends name="java/lang/Object"/> <implements name="java/lang/Cloneable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="clone()Landroid/animation/PropertyValuesHolder;"/> <method name="getPropertyName()Ljava/lang/String;"/> <method name="ofFloat(Landroid/util/Property;[F)Landroid/animation/PropertyValuesHolder;" since="14"/> @@ -3661,35 +3621,35 @@ </class> <class name="android/app/ActionBar$OnNavigationListener" since="11" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onNavigationItemSelected(IJ)Z" deprecated="29"/> + <method name="onNavigationItemSelected(IJ)Z"/> </class> <class name="android/app/ActionBar$Tab" since="11" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="getContentDescription()Ljava/lang/CharSequence;" since="14" deprecated="29"/> - <method name="getCustomView()Landroid/view/View;" deprecated="29"/> - <method name="getIcon()Landroid/graphics/drawable/Drawable;" deprecated="29"/> - <method name="getPosition()I" deprecated="29"/> - <method name="getTag()Ljava/lang/Object;" deprecated="29"/> - <method name="getText()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="select()V" deprecated="29"/> - <method name="setContentDescription(I)Landroid/app/ActionBar$Tab;" since="14" deprecated="29"/> - <method name="setContentDescription(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" since="14" deprecated="29"/> - <method name="setCustomView(I)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setCustomView(Landroid/view/View;)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setIcon(I)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setTabListener(Landroid/app/ActionBar$TabListener;)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setTag(Ljava/lang/Object;)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setText(I)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <method name="setText(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" deprecated="29"/> - <field name="INVALID_POSITION" deprecated="29"/> + <method name="<init>()V"/> + <method name="getContentDescription()Ljava/lang/CharSequence;" since="14"/> + <method name="getCustomView()Landroid/view/View;"/> + <method name="getIcon()Landroid/graphics/drawable/Drawable;"/> + <method name="getPosition()I"/> + <method name="getTag()Ljava/lang/Object;"/> + <method name="getText()Ljava/lang/CharSequence;"/> + <method name="select()V"/> + <method name="setContentDescription(I)Landroid/app/ActionBar$Tab;" since="14"/> + <method name="setContentDescription(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" since="14"/> + <method name="setCustomView(I)Landroid/app/ActionBar$Tab;"/> + <method name="setCustomView(Landroid/view/View;)Landroid/app/ActionBar$Tab;"/> + <method name="setIcon(I)Landroid/app/ActionBar$Tab;"/> + <method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/app/ActionBar$Tab;"/> + <method name="setTabListener(Landroid/app/ActionBar$TabListener;)Landroid/app/ActionBar$Tab;"/> + <method name="setTag(Ljava/lang/Object;)Landroid/app/ActionBar$Tab;"/> + <method name="setText(I)Landroid/app/ActionBar$Tab;"/> + <method name="setText(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;"/> + <field name="INVALID_POSITION"/> </class> <class name="android/app/ActionBar$TabListener" since="11" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onTabReselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" deprecated="29"/> - <method name="onTabSelected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" deprecated="29"/> - <method name="onTabUnselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" deprecated="29"/> + <method name="onTabReselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V"/> + <method name="onTabSelected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V"/> + <method name="onTabUnselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V"/> </class> <class name="android/app/Activity" since="1"> <extends name="android/view/ContextThemeWrapper"/> @@ -3705,7 +3665,7 @@ <method name="closeContextMenu()V" since="3"/> <method name="closeOptionsMenu()V"/> <method name="createPendingResult(ILandroid/content/Intent;I)Landroid/app/PendingIntent;"/> - <method name="dismissDialog(I)V" deprecated="15"/> + <method name="dismissDialog(I)V" deprecated="16"/> <method name="dismissKeyboardShortcutsHelper()V" since="24"/> <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="11"/> <method name="enterPictureInPictureMode()V" since="24" deprecated="26"/> @@ -3730,7 +3690,7 @@ <method name="getFragmentManager()Landroid/app/FragmentManager;" since="11" deprecated="28"/> <method name="getInstanceCount()J" removed="11"/> <method name="getIntent()Landroid/content/Intent;"/> - <method name="getLastNonConfigurationInstance()Ljava/lang/Object;" deprecated="15"/> + <method name="getLastNonConfigurationInstance()Ljava/lang/Object;" deprecated="16"/> <method name="getLayoutInflater()Landroid/view/LayoutInflater;"/> <method name="getLoaderManager()Landroid/app/LoaderManager;" since="11" deprecated="28"/> <method name="getLocalClassName()Ljava/lang/String;"/> @@ -3764,7 +3724,7 @@ <method name="isTaskRoot()Z"/> <method name="isVoiceInteraction()Z" since="23"/> <method name="isVoiceInteractionRoot()Z" since="23"/> - <method name="managedQuery(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" deprecated="15"/> + <method name="managedQuery(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" deprecated="16"/> <method name="moveTaskToBack(Z)Z"/> <method name="navigateUpTo(Landroid/content/Intent;)Z" since="16"/> <method name="navigateUpToFromChild(Landroid/app/Activity;Landroid/content/Intent;)Z" since="16"/> @@ -3778,15 +3738,14 @@ <method name="onCreate(Landroid/os/Bundle;)V"/> <method name="onCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21"/> <method name="onCreateDescription()Ljava/lang/CharSequence;"/> - <method name="onCreateDialog(I)Landroid/app/Dialog;" deprecated="15"/> - <method name="onCreateDialog(ILandroid/os/Bundle;)Landroid/app/Dialog;" since="8" deprecated="15"/> + <method name="onCreateDialog(I)Landroid/app/Dialog;" deprecated="16"/> + <method name="onCreateDialog(ILandroid/os/Bundle;)Landroid/app/Dialog;" since="8" deprecated="16"/> <method name="onCreateNavigateUpTaskStack(Landroid/app/TaskStackBuilder;)V" since="16"/> <method name="onCreateOptionsMenu(Landroid/view/Menu;)Z"/> <method name="onCreateThumbnail(Landroid/graphics/Bitmap;Landroid/graphics/Canvas;)Z" deprecated="28"/> <method name="onDestroy()V"/> <method name="onEnterAnimationComplete()V" since="21"/> <method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12"/> - <method name="onGetDirectActions(Landroid/os/CancellationSignal;Ljava/util/function/Consumer;)V" since="29"/> <method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" since="11"/> <method name="onLocalVoiceInteractionStarted()V" since="24"/> <method name="onLocalVoiceInteractionStopped()V" since="24"/> @@ -3798,14 +3757,13 @@ <method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z"/> <method name="onOptionsMenuClosed(Landroid/view/Menu;)V"/> <method name="onPause()V"/> - <method name="onPerformDirectAction(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;Ljava/util/function/Consumer;)V" since="29"/> <method name="onPictureInPictureModeChanged(Z)V" since="24" deprecated="26"/> <method name="onPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V" since="26"/> <method name="onPostCreate(Landroid/os/Bundle;)V"/> <method name="onPostCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21"/> <method name="onPostResume()V"/> - <method name="onPrepareDialog(ILandroid/app/Dialog;)V" deprecated="15"/> - <method name="onPrepareDialog(ILandroid/app/Dialog;Landroid/os/Bundle;)V" since="8" deprecated="15"/> + <method name="onPrepareDialog(ILandroid/app/Dialog;)V" deprecated="16"/> + <method name="onPrepareDialog(ILandroid/app/Dialog;Landroid/os/Bundle;)V" since="8" deprecated="16"/> <method name="onPrepareNavigateUpTaskStack(Landroid/app/TaskStackBuilder;)V" since="16"/> <method name="onPrepareOptionsMenu(Landroid/view/Menu;)Z"/> <method name="onProvideAssistContent(Landroid/app/assist/AssistContent;)V" since="23"/> @@ -3816,14 +3774,13 @@ <method name="onRestoreInstanceState(Landroid/os/Bundle;)V"/> <method name="onRestoreInstanceState(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21"/> <method name="onResume()V"/> - <method name="onRetainNonConfigurationInstance()Ljava/lang/Object;" deprecated="15"/> + <method name="onRetainNonConfigurationInstance()Ljava/lang/Object;" deprecated="16"/> <method name="onSaveInstanceState(Landroid/os/Bundle;)V"/> <method name="onSaveInstanceState(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21"/> <method name="onStart()V"/> - <method name="onStateNotSaved()V" since="23" deprecated="29"/> + <method name="onStateNotSaved()V" since="23"/> <method name="onStop()V"/> <method name="onTitleChanged(Ljava/lang/CharSequence;I)V"/> - <method name="onTopResumedActivityChanged(Z)V" since="29"/> <method name="onTouchEvent(Landroid/view/MotionEvent;)Z"/> <method name="onTrackballEvent(Landroid/view/MotionEvent;)Z"/> <method name="onUserInteraction()V" since="3"/> @@ -3834,10 +3791,9 @@ <method name="overridePendingTransition(II)V" since="5"/> <method name="postponeEnterTransition()V" since="21"/> <method name="recreate()V" since="11"/> - <method name="registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V" since="29"/> <method name="registerForContextMenu(Landroid/view/View;)V"/> <method name="releaseInstance()Z" since="21"/> - <method name="removeDialog(I)V" deprecated="15"/> + <method name="removeDialog(I)V" deprecated="16"/> <method name="reportFullyDrawn()V" since="19"/> <method name="requestDragAndDropPermissions(Landroid/view/DragEvent;)Landroid/view/DragAndDropPermissions;" since="24"/> <method name="requestPermissions([Ljava/lang/String;I)V" since="23"/> @@ -3860,7 +3816,6 @@ <method name="setFeatureDrawableUri(ILandroid/net/Uri;)V"/> <method name="setFinishOnTouchOutside(Z)V" since="11"/> <method name="setImmersive(Z)V" since="18"/> - <method name="setInheritShowWhenLocked(Z)V" since="29"/> <method name="setIntent(Landroid/content/Intent;)V"/> <method name="setMediaController(Landroid/media/session/MediaController;)V" since="21"/> <method name="setPersistent(Z)V" removed="11"/> @@ -3885,8 +3840,8 @@ <method name="shouldShowRequestPermissionRationale(Ljava/lang/String;)Z" since="23"/> <method name="shouldUpRecreateTask(Landroid/content/Intent;)Z" since="16"/> <method name="showAssist(Landroid/os/Bundle;)Z" since="23"/> - <method name="showDialog(I)V" deprecated="15"/> - <method name="showDialog(ILandroid/os/Bundle;)Z" since="8" deprecated="15"/> + <method name="showDialog(I)V" deprecated="16"/> + <method name="showDialog(ILandroid/os/Bundle;)Z" since="8" deprecated="16"/> <method name="showLockTaskEscapeMessage()V" since="23"/> <method name="startActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11"/> <method name="startActionMode(Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;" since="23"/> @@ -3904,17 +3859,16 @@ <method name="startIntentSenderFromChild(Landroid/app/Activity;Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="16"/> <method name="startLocalVoiceInteraction(Landroid/os/Bundle;)V" since="24"/> <method name="startLockTask()V" since="21"/> - <method name="startManagingCursor(Landroid/database/Cursor;)V" deprecated="15"/> + <method name="startManagingCursor(Landroid/database/Cursor;)V" deprecated="16"/> <method name="startNextMatchingActivity(Landroid/content/Intent;)Z"/> <method name="startNextMatchingActivity(Landroid/content/Intent;Landroid/os/Bundle;)Z" since="16"/> <method name="startPostponedEnterTransition()V" since="21"/> <method name="startSearch(Ljava/lang/String;ZLandroid/os/Bundle;Z)V"/> <method name="stopLocalVoiceInteraction()V" since="24"/> <method name="stopLockTask()V" since="21"/> - <method name="stopManagingCursor(Landroid/database/Cursor;)V" deprecated="15"/> + <method name="stopManagingCursor(Landroid/database/Cursor;)V" deprecated="16"/> <method name="takeKeyEvents(Z)V"/> <method name="triggerSearch(Ljava/lang/String;Landroid/os/Bundle;)V" since="5"/> - <method name="unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V" since="29"/> <method name="unregisterForContextMenu(Landroid/view/View;)V"/> <field name="DEFAULT_KEYS_DIALER"/> <field name="DEFAULT_KEYS_DISABLE"/> @@ -3928,13 +3882,15 @@ </class> <class name="android/app/ActivityGroup" since="1" deprecated="13"> <extends name="android/app/Activity"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Z)V" deprecated="29"/> - <method name="getCurrentActivity()Landroid/app/Activity;" deprecated="29"/> - <method name="getLocalActivityManager()Landroid/app/LocalActivityManager;" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Z)V"/> + <method name="getCurrentActivity()Landroid/app/Activity;"/> + <method name="getLocalActivityManager()Landroid/app/LocalActivityManager;"/> </class> <class name="android/app/ActivityManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/os/Handler;)V" since="29"/> <method name="addAppTask(Landroid/app/Activity;Landroid/content/Intent;Landroid/app/ActivityManager$TaskDescription;Landroid/graphics/Bitmap;)I" since="21"/> <method name="clearApplicationUserData()Z" since="19"/> <method name="clearWatchHeapLimit()V" since="23"/> @@ -3956,17 +3912,15 @@ <method name="getRunningServiceControlPanel(Landroid/content/ComponentName;)Landroid/app/PendingIntent;" since="5"/> <method name="getRunningServices(I)Ljava/util/List;" deprecated="26"/> <method name="getRunningTasks(I)Ljava/util/List;" deprecated="21"/> - <method name="isActivityStartAllowedOnDisplay(Landroid/content/Context;ILandroid/content/Intent;)Z" since="29"/> <method name="isBackgroundRestricted()Z" since="28"/> <method name="isInLockTaskMode()Z" since="21" deprecated="23"/> <method name="isLowRamDevice()Z" since="19"/> - <method name="isRunningInTestHarness()Z" since="11" deprecated="29"/> - <method name="isRunningInUserTestHarness()Z" since="29"/> + <method name="isRunningInTestHarness()Z" since="11"/> <method name="isUserAMonkey()Z" since="8"/> <method name="killBackgroundProcesses(Ljava/lang/String;)V" since="8"/> <method name="moveTaskToFront(II)V" since="11"/> <method name="moveTaskToFront(IILandroid/os/Bundle;)V" since="16"/> - <method name="restartPackage(Ljava/lang/String;)V" since="3" deprecated="15"/> + <method name="restartPackage(Ljava/lang/String;)V" since="3" deprecated="16"/> <method name="setVrThread(I)V" since="25"/> <method name="setWatchHeapLimit(J)V" since="23"/> <field name="ACTION_REPORT_HEAP_LIMIT" since="23"/> @@ -3981,6 +3935,7 @@ </class> <class name="android/app/ActivityManager$AppTask" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="finishAndRemoveTask()V"/> <method name="getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;"/> <method name="moveToFront()V"/> @@ -4018,22 +3973,21 @@ <field name="uid"/> </class> <class name="android/app/ActivityManager$RecentTaskInfo" since="1"> - <extends name="android/app/TaskInfo" since="29"/> - <extends name="java/lang/Object" removed="29"/> + <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>()V"/> <method name="readFromParcel(Landroid/os/Parcel;)V"/> <field name="CREATOR"/> - <field name="affiliatedTaskId" since="21" deprecated="29"/> - <field name="baseActivity" since="23" removed="29"/> - <field name="baseIntent" removed="29"/> - <field name="description" since="11" deprecated="29"/> - <field name="id" deprecated="29"/> - <field name="numActivities" since="23" removed="29"/> - <field name="origActivity" removed="29"/> - <field name="persistentId" since="12" deprecated="29"/> - <field name="taskDescription" since="21" removed="29"/> - <field name="topActivity" since="23" removed="29"/> + <field name="affiliatedTaskId" since="21"/> + <field name="baseActivity" since="23"/> + <field name="baseIntent"/> + <field name="description" since="11"/> + <field name="id"/> + <field name="numActivities" since="23"/> + <field name="origActivity"/> + <field name="persistentId" since="12"/> + <field name="taskDescription" since="21"/> + <field name="topActivity" since="23"/> </class> <class name="android/app/ActivityManager$RunningAppProcessInfo" since="3"> <extends name="java/lang/Object"/> @@ -4095,19 +4049,18 @@ <field name="uid" since="5"/> </class> <class name="android/app/ActivityManager$RunningTaskInfo" since="1"> - <extends name="android/app/TaskInfo" since="29"/> - <extends name="java/lang/Object" removed="29"/> + <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>()V"/> <method name="readFromParcel(Landroid/os/Parcel;)V"/> <field name="CREATOR"/> - <field name="baseActivity" removed="29"/> - <field name="description" deprecated="29"/> - <field name="id" deprecated="29"/> - <field name="numActivities" removed="29"/> - <field name="numRunning" deprecated="29"/> - <field name="thumbnail" deprecated="29"/> - <field name="topActivity" removed="29"/> + <field name="baseActivity"/> + <field name="description"/> + <field name="id"/> + <field name="numActivities"/> + <field name="numRunning"/> + <field name="thumbnail"/> + <field name="topActivity"/> </class> <class name="android/app/ActivityManager$TaskDescription" since="21"> <extends name="java/lang/Object"/> @@ -4127,6 +4080,7 @@ </class> <class name="android/app/ActivityOptions" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getLaunchBounds()Landroid/graphics/Rect;" since="24"/> <method name="getLaunchDisplayId()I" since="26"/> <method name="getLockTaskMode()Z" since="28"/> @@ -4150,6 +4104,7 @@ </class> <class name="android/app/AlarmManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel(Landroid/app/AlarmManager$OnAlarmListener;)V" since="24"/> <method name="cancel(Landroid/app/PendingIntent;)V"/> <method name="getNextAlarmClock()Landroid/app/AlarmManager$AlarmClockInfo;" since="21"/> @@ -4198,12 +4153,12 @@ <method name="getListView()Landroid/widget/ListView;" since="3"/> <method name="setButton(ILjava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" since="3"/> <method name="setButton(ILjava/lang/CharSequence;Landroid/os/Message;)V" since="3"/> - <method name="setButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" deprecated="15"/> - <method name="setButton(Ljava/lang/CharSequence;Landroid/os/Message;)V" deprecated="15"/> - <method name="setButton2(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" deprecated="15"/> - <method name="setButton2(Ljava/lang/CharSequence;Landroid/os/Message;)V" deprecated="15"/> - <method name="setButton3(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" deprecated="15"/> - <method name="setButton3(Ljava/lang/CharSequence;Landroid/os/Message;)V" deprecated="15"/> + <method name="setButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" deprecated="16"/> + <method name="setButton(Ljava/lang/CharSequence;Landroid/os/Message;)V" deprecated="16"/> + <method name="setButton2(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" deprecated="16"/> + <method name="setButton2(Ljava/lang/CharSequence;Landroid/os/Message;)V" deprecated="16"/> + <method name="setButton3(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" deprecated="16"/> + <method name="setButton3(Ljava/lang/CharSequence;Landroid/os/Message;)V" deprecated="16"/> <method name="setCustomTitle(Landroid/view/View;)V"/> <method name="setIcon(I)V"/> <method name="setIcon(Landroid/graphics/drawable/Drawable;)V"/> @@ -4268,36 +4223,29 @@ <method name="<init>()V"/> <method name="instantiateActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;"/> <method name="instantiateApplication(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/app/Application;"/> - <method name="instantiateClassLoader(Ljava/lang/ClassLoader;Landroid/content/pm/ApplicationInfo;)Ljava/lang/ClassLoader;" since="29"/> <method name="instantiateProvider(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/content/ContentProvider;"/> <method name="instantiateReceiver(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/content/BroadcastReceiver;"/> <method name="instantiateService(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Service;"/> </class> <class name="android/app/AppOpsManager" since="19"> <extends name="java/lang/Object"/> - <method name="checkOp(Ljava/lang/String;ILjava/lang/String;)I" deprecated="29"/> - <method name="checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I" deprecated="29"/> + <method name="<init>()V"/> + <method name="checkOp(Ljava/lang/String;ILjava/lang/String;)I"/> + <method name="checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I"/> <method name="checkPackage(ILjava/lang/String;)V"/> <method name="finishOp(Ljava/lang/String;ILjava/lang/String;)V"/> <method name="noteOp(Ljava/lang/String;ILjava/lang/String;)I"/> <method name="noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I"/> <method name="noteProxyOp(Ljava/lang/String;Ljava/lang/String;)I" since="23"/> <method name="noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;)I" since="23"/> - <method name="noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;I)I" since="29"/> <method name="permissionToOp(Ljava/lang/String;)Ljava/lang/String;" since="23"/> <method name="startOp(Ljava/lang/String;ILjava/lang/String;)I"/> <method name="startOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I"/> - <method name="startWatchingMode(Ljava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V" since="29"/> <method name="startWatchingMode(Ljava/lang/String;Ljava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V"/> <method name="stopWatchingMode(Landroid/app/AppOpsManager$OnOpChangedListener;)V"/> - <method name="unsafeCheckOp(Ljava/lang/String;ILjava/lang/String;)I" since="29"/> - <method name="unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I" since="29"/> - <method name="unsafeCheckOpRaw(Ljava/lang/String;ILjava/lang/String;)I" since="29"/> - <method name="unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I" since="29"/> <field name="MODE_ALLOWED"/> <field name="MODE_DEFAULT" since="21"/> <field name="MODE_ERRORED"/> - <field name="MODE_FOREGROUND" since="29"/> <field name="MODE_IGNORED"/> <field name="OPSTR_ADD_VOICEMAIL" since="23"/> <field name="OPSTR_ANSWER_PHONE_CALLS" since="26"/> @@ -4333,7 +4281,6 @@ <field name="OPSTR_WRITE_CONTACTS" since="23"/> <field name="OPSTR_WRITE_EXTERNAL_STORAGE" since="23"/> <field name="OPSTR_WRITE_SETTINGS" since="23"/> - <field name="WATCH_FOREGROUND_CHANGES" since="29"/> </class> <class name="android/app/AppOpsManager$OnOpChangedListener" since="19"> <extends name="java/lang/Object"/> @@ -4357,20 +4304,6 @@ <method name="onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V"/> <method name="onActivityDestroyed(Landroid/app/Activity;)V"/> <method name="onActivityPaused(Landroid/app/Activity;)V"/> - <method name="onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V" since="29"/> - <method name="onActivityPostDestroyed(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPostPaused(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPostResumed(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPostSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" since="29"/> - <method name="onActivityPostStarted(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPostStopped(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V" since="29"/> - <method name="onActivityPreDestroyed(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPrePaused(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPreResumed(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPreSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" since="29"/> - <method name="onActivityPreStarted(Landroid/app/Activity;)V" since="29"/> - <method name="onActivityPreStopped(Landroid/app/Activity;)V" since="29"/> <method name="onActivityResumed(Landroid/app/Activity;)V"/> <method name="onActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V"/> <method name="onActivityStarted(Landroid/app/Activity;)V"/> @@ -4460,22 +4393,17 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>(Landroid/os/Parcel;)V"/> - <method name="<init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/net/Uri;Landroid/service/notification/ZenPolicy;IZ)V" since="29"/> - <method name="<init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/net/Uri;IZ)V" deprecated="29"/> + <method name="<init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/net/Uri;IZ)V"/> <method name="getConditionId()Landroid/net/Uri;"/> - <method name="getConfigurationActivity()Landroid/content/ComponentName;" since="29"/> <method name="getCreationTime()J"/> <method name="getInterruptionFilter()I"/> <method name="getName()Ljava/lang/String;"/> <method name="getOwner()Landroid/content/ComponentName;"/> - <method name="getZenPolicy()Landroid/service/notification/ZenPolicy;" since="29"/> <method name="isEnabled()Z"/> <method name="setConditionId(Landroid/net/Uri;)V"/> - <method name="setConfigurationActivity(Landroid/content/ComponentName;)V" since="29"/> <method name="setEnabled(Z)V"/> <method name="setInterruptionFilter(I)V"/> <method name="setName(Ljava/lang/String;)V"/> - <method name="setZenPolicy(Landroid/service/notification/ZenPolicy;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/app/DatePickerDialog" since="1"> @@ -4566,43 +4494,30 @@ <extends name="android/app/Fragment"/> <implements name="android/content/DialogInterface$OnCancelListener"/> <implements name="android/content/DialogInterface$OnDismissListener"/> - <method name="<init>()V" deprecated="29"/> - <method name="dismiss()V" deprecated="29"/> - <method name="dismissAllowingStateLoss()V" since="12" deprecated="29"/> - <method name="getDialog()Landroid/app/Dialog;" deprecated="29"/> - <method name="getShowsDialog()Z" deprecated="29"/> - <method name="getTheme()I" deprecated="29"/> - <method name="isCancelable()Z" deprecated="29"/> - <method name="onCreateDialog(Landroid/os/Bundle;)Landroid/app/Dialog;" deprecated="29"/> - <method name="setCancelable(Z)V" deprecated="29"/> - <method name="setShowsDialog(Z)V" deprecated="29"/> - <method name="setStyle(II)V" deprecated="29"/> - <method name="show(Landroid/app/FragmentManager;Ljava/lang/String;)V" deprecated="29"/> - <method name="show(Landroid/app/FragmentTransaction;Ljava/lang/String;)I" deprecated="29"/> - <field name="STYLE_NORMAL" deprecated="29"/> - <field name="STYLE_NO_FRAME" deprecated="29"/> - <field name="STYLE_NO_INPUT" deprecated="29"/> - <field name="STYLE_NO_TITLE" deprecated="29"/> - </class> - <class name="android/app/DirectAction" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getId()Ljava/lang/String;"/> - <method name="getLocusId()Landroid/content/LocusId;"/> - <field name="CREATOR"/> - </class> - <class name="android/app/DirectAction$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Ljava/lang/String;)V"/> - <method name="build()Landroid/app/DirectAction;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/app/DirectAction$Builder;"/> - <method name="setLocusId(Landroid/content/LocusId;)Landroid/app/DirectAction$Builder;"/> + <method name="<init>()V"/> + <method name="dismiss()V"/> + <method name="dismissAllowingStateLoss()V" since="12"/> + <method name="getDialog()Landroid/app/Dialog;"/> + <method name="getShowsDialog()Z"/> + <method name="getTheme()I"/> + <method name="isCancelable()Z"/> + <method name="onCreateDialog(Landroid/os/Bundle;)Landroid/app/Dialog;"/> + <method name="setCancelable(Z)V"/> + <method name="setShowsDialog(Z)V"/> + <method name="setStyle(II)V"/> + <method name="show(Landroid/app/FragmentManager;Ljava/lang/String;)V"/> + <method name="show(Landroid/app/FragmentTransaction;Ljava/lang/String;)I"/> + <field name="STYLE_NORMAL"/> + <field name="STYLE_NO_FRAME"/> + <field name="STYLE_NO_INPUT"/> + <field name="STYLE_NO_TITLE"/> </class> <class name="android/app/DownloadManager" since="9"> <extends name="java/lang/Object"/> - <method name="addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZ)J" since="12" deprecated="29"/> - <method name="addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZLandroid/net/Uri;Landroid/net/Uri;)J" since="24" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> + <method name="addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZ)J" since="12"/> + <method name="addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZLandroid/net/Uri;Landroid/net/Uri;)J" since="24"/> <method name="enqueue(Landroid/app/DownloadManager$Request;)J"/> <method name="getMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;" since="11"/> <method name="getMimeTypeForDownloadedFile(J)Ljava/lang/String;" since="11"/> @@ -4659,7 +4574,7 @@ <extends name="java/lang/Object"/> <method name="<init>(Landroid/net/Uri;)V"/> <method name="addRequestHeader(Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;"/> - <method name="allowScanningByMediaScanner()V" since="11" deprecated="29"/> + <method name="allowScanningByMediaScanner()V" since="11"/> <method name="setAllowedNetworkTypes(I)Landroid/app/DownloadManager$Request;"/> <method name="setAllowedOverMetered(Z)Landroid/app/DownloadManager$Request;" since="16"/> <method name="setAllowedOverRoaming(Z)Landroid/app/DownloadManager$Request;"/> @@ -4671,9 +4586,9 @@ <method name="setNotificationVisibility(I)Landroid/app/DownloadManager$Request;" since="11"/> <method name="setRequiresCharging(Z)Landroid/app/DownloadManager$Request;" since="24"/> <method name="setRequiresDeviceIdle(Z)Landroid/app/DownloadManager$Request;" since="24"/> - <method name="setShowRunningNotification(Z)Landroid/app/DownloadManager$Request;" deprecated="15"/> + <method name="setShowRunningNotification(Z)Landroid/app/DownloadManager$Request;" deprecated="16"/> <method name="setTitle(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request;"/> - <method name="setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request;" deprecated="29"/> + <method name="setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request;"/> <field name="NETWORK_MOBILE"/> <field name="NETWORK_WIFI"/> <field name="VISIBILITY_HIDDEN" since="11"/> @@ -4700,304 +4615,310 @@ <implements name="android/content/ComponentCallbacks" removed="14"/> <implements name="android/content/ComponentCallbacks2" since="14"/> <implements name="android/view/View$OnCreateContextMenuListener"/> - <method name="<init>()V" deprecated="29"/> - <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" deprecated="29"/> - <method name="getActivity()Landroid/app/Activity;" deprecated="29"/> - <method name="getAllowEnterTransitionOverlap()Z" since="21" deprecated="29"/> - <method name="getAllowReturnTransitionOverlap()Z" since="21" deprecated="29"/> - <method name="getArguments()Landroid/os/Bundle;" deprecated="29"/> - <method name="getChildFragmentManager()Landroid/app/FragmentManager;" since="17" deprecated="29"/> - <method name="getContext()Landroid/content/Context;" since="23" deprecated="29"/> - <method name="getEnterTransition()Landroid/transition/Transition;" since="21" deprecated="29"/> - <method name="getExitTransition()Landroid/transition/Transition;" since="21" deprecated="29"/> - <method name="getFragmentManager()Landroid/app/FragmentManager;" deprecated="29"/> - <method name="getHost()Ljava/lang/Object;" since="23" deprecated="29"/> - <method name="getId()I" deprecated="29"/> - <method name="getLayoutInflater()Landroid/view/LayoutInflater;" since="26" deprecated="29"/> + <method name="<init>()V"/> + <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> + <method name="getActivity()Landroid/app/Activity;"/> + <method name="getAllowEnterTransitionOverlap()Z" since="21"/> + <method name="getAllowReturnTransitionOverlap()Z" since="21"/> + <method name="getArguments()Landroid/os/Bundle;"/> + <method name="getChildFragmentManager()Landroid/app/FragmentManager;" since="17"/> + <method name="getContext()Landroid/content/Context;" since="23"/> + <method name="getEnterTransition()Landroid/transition/Transition;" since="21"/> + <method name="getExitTransition()Landroid/transition/Transition;" since="21"/> + <method name="getFragmentManager()Landroid/app/FragmentManager;"/> + <method name="getHost()Ljava/lang/Object;" since="23"/> + <method name="getId()I"/> + <method name="getLayoutInflater()Landroid/view/LayoutInflater;" since="26"/> <method name="getLoaderManager()Landroid/app/LoaderManager;" deprecated="28"/> - <method name="getParentFragment()Landroid/app/Fragment;" since="17" deprecated="29"/> - <method name="getReenterTransition()Landroid/transition/Transition;" since="21" deprecated="29"/> - <method name="getResources()Landroid/content/res/Resources;" deprecated="29"/> - <method name="getRetainInstance()Z" deprecated="29"/> - <method name="getReturnTransition()Landroid/transition/Transition;" since="21" deprecated="29"/> - <method name="getSharedElementEnterTransition()Landroid/transition/Transition;" since="21" deprecated="29"/> - <method name="getSharedElementReturnTransition()Landroid/transition/Transition;" since="21" deprecated="29"/> - <method name="getString(I)Ljava/lang/String;" deprecated="29"/> - <method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" deprecated="29"/> - <method name="getTag()Ljava/lang/String;" deprecated="29"/> - <method name="getTargetFragment()Landroid/app/Fragment;" deprecated="29"/> - <method name="getTargetRequestCode()I" deprecated="29"/> - <method name="getText(I)Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getUserVisibleHint()Z" since="15" deprecated="29"/> - <method name="getView()Landroid/view/View;" deprecated="29"/> - <method name="instantiate(Landroid/content/Context;Ljava/lang/String;)Landroid/app/Fragment;" deprecated="29"/> - <method name="instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;" deprecated="29"/> - <method name="isAdded()Z" deprecated="29"/> - <method name="isDetached()Z" since="13" deprecated="29"/> - <method name="isHidden()Z" deprecated="29"/> - <method name="isInLayout()Z" deprecated="29"/> - <method name="isRemoving()Z" deprecated="29"/> - <method name="isResumed()Z" deprecated="29"/> - <method name="isStateSaved()Z" since="26" deprecated="29"/> - <method name="isVisible()Z" deprecated="29"/> - <method name="onActivityCreated(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onActivityResult(IILandroid/content/Intent;)V" deprecated="29"/> + <method name="getParentFragment()Landroid/app/Fragment;" since="17"/> + <method name="getReenterTransition()Landroid/transition/Transition;" since="21"/> + <method name="getResources()Landroid/content/res/Resources;"/> + <method name="getRetainInstance()Z"/> + <method name="getReturnTransition()Landroid/transition/Transition;" since="21"/> + <method name="getSharedElementEnterTransition()Landroid/transition/Transition;" since="21"/> + <method name="getSharedElementReturnTransition()Landroid/transition/Transition;" since="21"/> + <method name="getString(I)Ljava/lang/String;"/> + <method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;"/> + <method name="getTag()Ljava/lang/String;"/> + <method name="getTargetFragment()Landroid/app/Fragment;"/> + <method name="getTargetRequestCode()I"/> + <method name="getText(I)Ljava/lang/CharSequence;"/> + <method name="getUserVisibleHint()Z" since="15"/> + <method name="getView()Landroid/view/View;"/> + <method name="instantiate(Landroid/content/Context;Ljava/lang/String;)Landroid/app/Fragment;"/> + <method name="instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;"/> + <method name="isAdded()Z"/> + <method name="isDetached()Z" since="13"/> + <method name="isHidden()Z"/> + <method name="isInLayout()Z"/> + <method name="isRemoving()Z"/> + <method name="isResumed()Z"/> + <method name="isStateSaved()Z" since="26"/> + <method name="isVisible()Z"/> + <method name="onActivityCreated(Landroid/os/Bundle;)V"/> + <method name="onActivityResult(IILandroid/content/Intent;)V"/> <method name="onAttach(Landroid/app/Activity;)V" deprecated="23"/> - <method name="onAttach(Landroid/content/Context;)V" since="23" deprecated="29"/> - <method name="onAttachFragment(Landroid/app/Fragment;)V" since="24" deprecated="29"/> - <method name="onContextItemSelected(Landroid/view/MenuItem;)Z" deprecated="29"/> - <method name="onCreate(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onCreateAnimator(IZI)Landroid/animation/Animator;" deprecated="29"/> - <method name="onCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)V" deprecated="29"/> - <method name="onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;" deprecated="29"/> - <method name="onDestroy()V" deprecated="29"/> - <method name="onDestroyOptionsMenu()V" deprecated="29"/> - <method name="onDestroyView()V" deprecated="29"/> - <method name="onDetach()V" deprecated="29"/> - <method name="onGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater;" since="26" deprecated="29"/> - <method name="onHiddenChanged(Z)V" deprecated="29"/> + <method name="onAttach(Landroid/content/Context;)V" since="23"/> + <method name="onAttachFragment(Landroid/app/Fragment;)V" since="24"/> + <method name="onContextItemSelected(Landroid/view/MenuItem;)Z"/> + <method name="onCreate(Landroid/os/Bundle;)V"/> + <method name="onCreateAnimator(IZI)Landroid/animation/Animator;"/> + <method name="onCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)V"/> + <method name="onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;"/> + <method name="onDestroy()V"/> + <method name="onDestroyOptionsMenu()V"/> + <method name="onDestroyView()V"/> + <method name="onDetach()V"/> + <method name="onGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater;" since="26"/> + <method name="onHiddenChanged(Z)V"/> <method name="onInflate(Landroid/app/Activity;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="12" deprecated="23"/> - <method name="onInflate(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="23" deprecated="29"/> - <method name="onInflate(Landroid/util/AttributeSet;Landroid/os/Bundle;)V" deprecated="15"/> + <method name="onInflate(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="23"/> + <method name="onInflate(Landroid/util/AttributeSet;Landroid/os/Bundle;)V" deprecated="16"/> <method name="onMultiWindowModeChanged(Z)V" since="24" deprecated="26"/> - <method name="onMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V" since="26" deprecated="29"/> - <method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" deprecated="29"/> - <method name="onOptionsMenuClosed(Landroid/view/Menu;)V" deprecated="29"/> - <method name="onPause()V" deprecated="29"/> + <method name="onMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V" since="26"/> + <method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z"/> + <method name="onOptionsMenuClosed(Landroid/view/Menu;)V"/> + <method name="onPause()V"/> <method name="onPictureInPictureModeChanged(Z)V" since="24" deprecated="26"/> - <method name="onPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V" since="26" deprecated="29"/> - <method name="onPrepareOptionsMenu(Landroid/view/Menu;)V" deprecated="29"/> - <method name="onRequestPermissionsResult(I[Ljava/lang/String;[I)V" since="23" deprecated="29"/> - <method name="onResume()V" deprecated="29"/> - <method name="onSaveInstanceState(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onStart()V" deprecated="29"/> - <method name="onStop()V" deprecated="29"/> - <method name="onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V" since="13" deprecated="29"/> - <method name="onViewStateRestored(Landroid/os/Bundle;)V" since="17" deprecated="29"/> - <method name="postponeEnterTransition()V" since="26" deprecated="29"/> - <method name="registerForContextMenu(Landroid/view/View;)V" deprecated="29"/> - <method name="requestPermissions([Ljava/lang/String;I)V" since="23" deprecated="29"/> - <method name="setAllowEnterTransitionOverlap(Z)V" since="21" deprecated="29"/> - <method name="setAllowReturnTransitionOverlap(Z)V" since="21" deprecated="29"/> - <method name="setArguments(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="setEnterSharedElementCallback(Landroid/app/SharedElementCallback;)V" since="21" deprecated="29"/> - <method name="setEnterTransition(Landroid/transition/Transition;)V" since="21" deprecated="29"/> - <method name="setExitSharedElementCallback(Landroid/app/SharedElementCallback;)V" since="21" deprecated="29"/> - <method name="setExitTransition(Landroid/transition/Transition;)V" since="21" deprecated="29"/> - <method name="setHasOptionsMenu(Z)V" deprecated="29"/> - <method name="setInitialSavedState(Landroid/app/Fragment$SavedState;)V" since="13" deprecated="29"/> - <method name="setMenuVisibility(Z)V" since="14" deprecated="29"/> - <method name="setReenterTransition(Landroid/transition/Transition;)V" since="21" deprecated="29"/> - <method name="setRetainInstance(Z)V" deprecated="29"/> - <method name="setReturnTransition(Landroid/transition/Transition;)V" since="21" deprecated="29"/> - <method name="setSharedElementEnterTransition(Landroid/transition/Transition;)V" since="21" deprecated="29"/> - <method name="setSharedElementReturnTransition(Landroid/transition/Transition;)V" since="21" deprecated="29"/> - <method name="setTargetFragment(Landroid/app/Fragment;I)V" deprecated="29"/> - <method name="setUserVisibleHint(Z)V" since="15" deprecated="29"/> - <method name="shouldShowRequestPermissionRationale(Ljava/lang/String;)Z" since="23" deprecated="29"/> - <method name="startActivity(Landroid/content/Intent;)V" deprecated="29"/> - <method name="startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V" since="16" deprecated="29"/> - <method name="startActivityForResult(Landroid/content/Intent;I)V" deprecated="29"/> - <method name="startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V" since="16" deprecated="29"/> - <method name="startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="24" deprecated="29"/> - <method name="startPostponedEnterTransition()V" since="26" deprecated="29"/> - <method name="unregisterForContextMenu(Landroid/view/View;)V" deprecated="29"/> + <method name="onPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V" since="26"/> + <method name="onPrepareOptionsMenu(Landroid/view/Menu;)V"/> + <method name="onRequestPermissionsResult(I[Ljava/lang/String;[I)V" since="23"/> + <method name="onResume()V"/> + <method name="onSaveInstanceState(Landroid/os/Bundle;)V"/> + <method name="onStart()V"/> + <method name="onStop()V"/> + <method name="onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V" since="13"/> + <method name="onViewStateRestored(Landroid/os/Bundle;)V" since="17"/> + <method name="postponeEnterTransition()V" since="26"/> + <method name="registerForContextMenu(Landroid/view/View;)V"/> + <method name="requestPermissions([Ljava/lang/String;I)V" since="23"/> + <method name="setAllowEnterTransitionOverlap(Z)V" since="21"/> + <method name="setAllowReturnTransitionOverlap(Z)V" since="21"/> + <method name="setArguments(Landroid/os/Bundle;)V"/> + <method name="setEnterSharedElementCallback(Landroid/app/SharedElementCallback;)V" since="21"/> + <method name="setEnterTransition(Landroid/transition/Transition;)V" since="21"/> + <method name="setExitSharedElementCallback(Landroid/app/SharedElementCallback;)V" since="21"/> + <method name="setExitTransition(Landroid/transition/Transition;)V" since="21"/> + <method name="setHasOptionsMenu(Z)V"/> + <method name="setInitialSavedState(Landroid/app/Fragment$SavedState;)V" since="13"/> + <method name="setMenuVisibility(Z)V" since="14"/> + <method name="setReenterTransition(Landroid/transition/Transition;)V" since="21"/> + <method name="setRetainInstance(Z)V"/> + <method name="setReturnTransition(Landroid/transition/Transition;)V" since="21"/> + <method name="setSharedElementEnterTransition(Landroid/transition/Transition;)V" since="21"/> + <method name="setSharedElementReturnTransition(Landroid/transition/Transition;)V" since="21"/> + <method name="setTargetFragment(Landroid/app/Fragment;I)V"/> + <method name="setUserVisibleHint(Z)V" since="15"/> + <method name="shouldShowRequestPermissionRationale(Ljava/lang/String;)Z" since="23"/> + <method name="startActivity(Landroid/content/Intent;)V"/> + <method name="startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V" since="16"/> + <method name="startActivityForResult(Landroid/content/Intent;I)V"/> + <method name="startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V" since="16"/> + <method name="startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="24"/> + <method name="startPostponedEnterTransition()V" since="26"/> + <method name="unregisterForContextMenu(Landroid/view/View;)V"/> </class> <class name="android/app/Fragment$InstantiationException" since="11" deprecated="28"> <extends name="android/util/AndroidRuntimeException"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/Exception;)V" deprecated="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/Exception;)V"/> </class> <class name="android/app/Fragment$SavedState" since="13" deprecated="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <field name="CREATOR" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Bundle;)V" since="29"/> + <field name="CREATOR"/> </class> <class name="android/app/FragmentBreadCrumbs" since="11" deprecated="21"> <extends name="android/view/ViewGroup"/> <implements name="android/app/FragmentManager$OnBackStackChangedListener"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="setActivity(Landroid/app/Activity;)V" deprecated="29"/> - <method name="setMaxVisible(I)V" deprecated="29"/> - <method name="setOnBreadCrumbClickListener(Landroid/app/FragmentBreadCrumbs$OnBreadCrumbClickListener;)V" since="12" deprecated="29"/> - <method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" deprecated="29"/> - <method name="setTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="setActivity(Landroid/app/Activity;)V"/> + <method name="setMaxVisible(I)V"/> + <method name="setOnBreadCrumbClickListener(Landroid/app/FragmentBreadCrumbs$OnBreadCrumbClickListener;)V" since="12"/> + <method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V"/> + <method name="setTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V"/> </class> <class name="android/app/FragmentBreadCrumbs$OnBreadCrumbClickListener" since="12" deprecated="28"> <extends name="java/lang/Object"/> - <method name="onBreadCrumbClick(Landroid/app/FragmentManager$BackStackEntry;I)Z" deprecated="29"/> + <method name="onBreadCrumbClick(Landroid/app/FragmentManager$BackStackEntry;I)Z"/> </class> <class name="android/app/FragmentContainer" since="23" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="onFindViewById(I)Landroid/view/View;" deprecated="29"/> - <method name="onHasView()Z" deprecated="29"/> + <method name="<init>()V"/> + <method name="onFindViewById(I)Landroid/view/View;"/> + <method name="onHasView()Z"/> </class> <class name="android/app/FragmentController" since="23" deprecated="28"> <extends name="java/lang/Object"/> - <method name="attachHost(Landroid/app/Fragment;)V" deprecated="29"/> - <method name="createController(Landroid/app/FragmentHostCallback;)Landroid/app/FragmentController;" deprecated="29"/> - <method name="dispatchActivityCreated()V" deprecated="29"/> - <method name="dispatchConfigurationChanged(Landroid/content/res/Configuration;)V" deprecated="29"/> - <method name="dispatchContextItemSelected(Landroid/view/MenuItem;)Z" deprecated="29"/> - <method name="dispatchCreate()V" deprecated="29"/> - <method name="dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z" deprecated="29"/> - <method name="dispatchDestroy()V" deprecated="29"/> - <method name="dispatchDestroyView()V" deprecated="29"/> - <method name="dispatchLowMemory()V" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/app/FragmentHostCallback;)V" since="29"/> + <method name="attachHost(Landroid/app/Fragment;)V"/> + <method name="createController(Landroid/app/FragmentHostCallback;)Landroid/app/FragmentController;"/> + <method name="dispatchActivityCreated()V"/> + <method name="dispatchConfigurationChanged(Landroid/content/res/Configuration;)V"/> + <method name="dispatchContextItemSelected(Landroid/view/MenuItem;)Z"/> + <method name="dispatchCreate()V"/> + <method name="dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z"/> + <method name="dispatchDestroy()V"/> + <method name="dispatchDestroyView()V"/> + <method name="dispatchLowMemory()V"/> <method name="dispatchMultiWindowModeChanged(Z)V" since="24" deprecated="26"/> - <method name="dispatchMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V" since="26" deprecated="29"/> - <method name="dispatchOptionsItemSelected(Landroid/view/MenuItem;)Z" deprecated="29"/> - <method name="dispatchOptionsMenuClosed(Landroid/view/Menu;)V" deprecated="29"/> - <method name="dispatchPause()V" deprecated="29"/> + <method name="dispatchMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V" since="26"/> + <method name="dispatchOptionsItemSelected(Landroid/view/MenuItem;)Z"/> + <method name="dispatchOptionsMenuClosed(Landroid/view/Menu;)V"/> + <method name="dispatchPause()V"/> <method name="dispatchPictureInPictureModeChanged(Z)V" since="24" deprecated="26"/> - <method name="dispatchPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V" since="26" deprecated="29"/> - <method name="dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z" deprecated="29"/> - <method name="dispatchResume()V" deprecated="29"/> - <method name="dispatchStart()V" deprecated="29"/> - <method name="dispatchStop()V" deprecated="29"/> - <method name="dispatchTrimMemory(I)V" deprecated="29"/> - <method name="doLoaderDestroy()V" deprecated="29"/> - <method name="doLoaderStart()V" deprecated="29"/> - <method name="doLoaderStop(Z)V" deprecated="29"/> - <method name="dumpLoaders(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" deprecated="29"/> - <method name="execPendingActions()Z" deprecated="29"/> - <method name="findFragmentByWho(Ljava/lang/String;)Landroid/app/Fragment;" deprecated="29"/> - <method name="getFragmentManager()Landroid/app/FragmentManager;" deprecated="29"/> - <method name="getLoaderManager()Landroid/app/LoaderManager;" deprecated="29"/> - <method name="noteStateNotSaved()V" deprecated="29"/> - <method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" deprecated="29"/> - <method name="reportLoaderStart()V" deprecated="29"/> - <method name="restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V" since="24" deprecated="29"/> + <method name="dispatchPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V" since="26"/> + <method name="dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z"/> + <method name="dispatchResume()V"/> + <method name="dispatchStart()V"/> + <method name="dispatchStop()V"/> + <method name="dispatchTrimMemory(I)V"/> + <method name="doLoaderDestroy()V"/> + <method name="doLoaderStart()V"/> + <method name="doLoaderStop(Z)V"/> + <method name="dumpLoaders(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> + <method name="execPendingActions()Z"/> + <method name="findFragmentByWho(Ljava/lang/String;)Landroid/app/Fragment;"/> + <method name="getFragmentManager()Landroid/app/FragmentManager;"/> + <method name="getLoaderManager()Landroid/app/LoaderManager;"/> + <method name="noteStateNotSaved()V"/> + <method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;"/> + <method name="reportLoaderStart()V"/> + <method name="restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V" since="24"/> <method name="restoreAllState(Landroid/os/Parcelable;Ljava/util/List;)V" deprecated="24"/> - <method name="restoreLoaderNonConfig(Landroid/util/ArrayMap;)V" deprecated="29"/> - <method name="retainLoaderNonConfig()Landroid/util/ArrayMap;" deprecated="29"/> - <method name="retainNestedNonConfig()Landroid/app/FragmentManagerNonConfig;" since="24" deprecated="29"/> + <method name="restoreLoaderNonConfig(Landroid/util/ArrayMap;)V"/> + <method name="retainLoaderNonConfig()Landroid/util/ArrayMap;"/> + <method name="retainNestedNonConfig()Landroid/app/FragmentManagerNonConfig;" since="24"/> <method name="retainNonConfig()Ljava/util/List;" deprecated="24"/> - <method name="saveAllState()Landroid/os/Parcelable;" deprecated="29"/> + <method name="saveAllState()Landroid/os/Parcelable;"/> </class> <class name="android/app/FragmentHostCallback" since="23" deprecated="28"> <extends name="android/app/FragmentContainer"/> - <method name="<init>(Landroid/content/Context;Landroid/os/Handler;I)V" deprecated="29"/> - <method name="onAttachFragment(Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onDump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" deprecated="29"/> - <method name="onGetHost()Ljava/lang/Object;" deprecated="29"/> - <method name="onGetLayoutInflater()Landroid/view/LayoutInflater;" deprecated="29"/> - <method name="onGetWindowAnimations()I" deprecated="29"/> - <method name="onHasWindowAnimations()Z" deprecated="29"/> - <method name="onInvalidateOptionsMenu()V" deprecated="29"/> - <method name="onRequestPermissionsFromFragment(Landroid/app/Fragment;[Ljava/lang/String;I)V" deprecated="29"/> - <method name="onShouldSaveFragmentState(Landroid/app/Fragment;)Z" deprecated="29"/> - <method name="onStartActivityFromFragment(Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)V" deprecated="29"/> - <method name="onStartIntentSenderFromFragment(Landroid/app/Fragment;Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="24" deprecated="29"/> - <method name="onUseFragmentManagerInflaterFactory()Z" deprecated="29"/> + <method name="<init>(Landroid/content/Context;Landroid/os/Handler;I)V"/> + <method name="onAttachFragment(Landroid/app/Fragment;)V"/> + <method name="onDump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> + <method name="onGetHost()Ljava/lang/Object;"/> + <method name="onGetLayoutInflater()Landroid/view/LayoutInflater;"/> + <method name="onGetWindowAnimations()I"/> + <method name="onHasWindowAnimations()Z"/> + <method name="onInvalidateOptionsMenu()V"/> + <method name="onRequestPermissionsFromFragment(Landroid/app/Fragment;[Ljava/lang/String;I)V"/> + <method name="onShouldSaveFragmentState(Landroid/app/Fragment;)Z"/> + <method name="onStartActivityFromFragment(Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)V"/> + <method name="onStartIntentSenderFromFragment(Landroid/app/Fragment;Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="24"/> + <method name="onUseFragmentManagerInflaterFactory()Z"/> </class> <class name="android/app/FragmentManager" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="addOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V" deprecated="29"/> - <method name="beginTransaction()Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" deprecated="29"/> - <method name="enableDebugLogging(Z)V" deprecated="29"/> - <method name="executePendingTransactions()Z" deprecated="29"/> - <method name="findFragmentById(I)Landroid/app/Fragment;" deprecated="29"/> - <method name="findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;" deprecated="29"/> - <method name="getBackStackEntryAt(I)Landroid/app/FragmentManager$BackStackEntry;" deprecated="29"/> - <method name="getBackStackEntryCount()I" deprecated="29"/> - <method name="getFragment(Landroid/os/Bundle;Ljava/lang/String;)Landroid/app/Fragment;" deprecated="29"/> - <method name="getFragments()Ljava/util/List;" since="26" deprecated="29"/> - <method name="getPrimaryNavigationFragment()Landroid/app/Fragment;" since="26" deprecated="29"/> - <method name="invalidateOptionsMenu()V" since="14" deprecated="29"/> - <method name="isDestroyed()Z" since="17" deprecated="29"/> - <method name="isStateSaved()Z" since="26" deprecated="29"/> - <method name="popBackStack()V" deprecated="29"/> - <method name="popBackStack(II)V" deprecated="29"/> - <method name="popBackStack(Ljava/lang/String;I)V" deprecated="29"/> - <method name="popBackStackImmediate()Z" deprecated="29"/> - <method name="popBackStackImmediate(II)Z" deprecated="29"/> - <method name="popBackStackImmediate(Ljava/lang/String;I)Z" deprecated="29"/> - <method name="putFragment(Landroid/os/Bundle;Ljava/lang/String;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="registerFragmentLifecycleCallbacks(Landroid/app/FragmentManager$FragmentLifecycleCallbacks;Z)V" since="26" deprecated="29"/> - <method name="removeOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V" deprecated="29"/> - <method name="saveFragmentInstanceState(Landroid/app/Fragment;)Landroid/app/Fragment$SavedState;" since="13" deprecated="29"/> - <method name="unregisterFragmentLifecycleCallbacks(Landroid/app/FragmentManager$FragmentLifecycleCallbacks;)V" since="26" deprecated="29"/> - <field name="POP_BACK_STACK_INCLUSIVE" deprecated="29"/> + <method name="<init>()V"/> + <method name="addOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V"/> + <method name="beginTransaction()Landroid/app/FragmentTransaction;"/> + <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> + <method name="enableDebugLogging(Z)V"/> + <method name="executePendingTransactions()Z"/> + <method name="findFragmentById(I)Landroid/app/Fragment;"/> + <method name="findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;"/> + <method name="getBackStackEntryAt(I)Landroid/app/FragmentManager$BackStackEntry;"/> + <method name="getBackStackEntryCount()I"/> + <method name="getFragment(Landroid/os/Bundle;Ljava/lang/String;)Landroid/app/Fragment;"/> + <method name="getFragments()Ljava/util/List;" since="26"/> + <method name="getPrimaryNavigationFragment()Landroid/app/Fragment;" since="26"/> + <method name="invalidateOptionsMenu()V" since="14"/> + <method name="isDestroyed()Z" since="17"/> + <method name="isStateSaved()Z" since="26"/> + <method name="popBackStack()V"/> + <method name="popBackStack(II)V"/> + <method name="popBackStack(Ljava/lang/String;I)V"/> + <method name="popBackStackImmediate()Z"/> + <method name="popBackStackImmediate(II)Z"/> + <method name="popBackStackImmediate(Ljava/lang/String;I)Z"/> + <method name="putFragment(Landroid/os/Bundle;Ljava/lang/String;Landroid/app/Fragment;)V"/> + <method name="registerFragmentLifecycleCallbacks(Landroid/app/FragmentManager$FragmentLifecycleCallbacks;Z)V" since="26"/> + <method name="removeOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V"/> + <method name="saveFragmentInstanceState(Landroid/app/Fragment;)Landroid/app/Fragment$SavedState;" since="13"/> + <method name="unregisterFragmentLifecycleCallbacks(Landroid/app/FragmentManager$FragmentLifecycleCallbacks;)V" since="26"/> + <field name="POP_BACK_STACK_INCLUSIVE"/> </class> <class name="android/app/FragmentManager$BackStackEntry" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="getBreadCrumbShortTitle()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getBreadCrumbShortTitleRes()I" deprecated="29"/> - <method name="getBreadCrumbTitle()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getBreadCrumbTitleRes()I" deprecated="29"/> - <method name="getId()I" deprecated="29"/> - <method name="getName()Ljava/lang/String;" since="14" deprecated="29"/> + <method name="getBreadCrumbShortTitle()Ljava/lang/CharSequence;"/> + <method name="getBreadCrumbShortTitleRes()I"/> + <method name="getBreadCrumbTitle()Ljava/lang/CharSequence;"/> + <method name="getBreadCrumbTitleRes()I"/> + <method name="getId()I"/> + <method name="getName()Ljava/lang/String;" since="14"/> </class> <class name="android/app/FragmentManager$FragmentLifecycleCallbacks" since="26" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="onFragmentActivityCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onFragmentAttached(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/content/Context;)V" deprecated="29"/> - <method name="onFragmentCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onFragmentDestroyed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onFragmentDetached(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onFragmentPaused(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onFragmentPreAttached(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/content/Context;)V" deprecated="29"/> - <method name="onFragmentPreCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onFragmentResumed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onFragmentSaveInstanceState(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onFragmentStarted(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onFragmentStopped(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> - <method name="onFragmentViewCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/view/View;Landroid/os/Bundle;)V" deprecated="29"/> - <method name="onFragmentViewDestroyed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="onFragmentActivityCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V"/> + <method name="onFragmentAttached(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/content/Context;)V"/> + <method name="onFragmentCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V"/> + <method name="onFragmentDestroyed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> + <method name="onFragmentDetached(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> + <method name="onFragmentPaused(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> + <method name="onFragmentPreAttached(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/content/Context;)V"/> + <method name="onFragmentPreCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V"/> + <method name="onFragmentResumed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> + <method name="onFragmentSaveInstanceState(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V"/> + <method name="onFragmentStarted(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> + <method name="onFragmentStopped(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> + <method name="onFragmentViewCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/view/View;Landroid/os/Bundle;)V"/> + <method name="onFragmentViewDestroyed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V"/> </class> <class name="android/app/FragmentManager$OnBackStackChangedListener" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="onBackStackChanged()V" deprecated="29"/> + <method name="onBackStackChanged()V"/> </class> <class name="android/app/FragmentManagerNonConfig" since="24" deprecated="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/List;Ljava/util/List;)V" since="29"/> </class> <class name="android/app/FragmentTransaction" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="add(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="add(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="addSharedElement(Landroid/view/View;Ljava/lang/String;)Landroid/app/FragmentTransaction;" since="21" deprecated="29"/> - <method name="addToBackStack(Ljava/lang/String;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="attach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13" deprecated="29"/> - <method name="commit()I" deprecated="29"/> - <method name="commitAllowingStateLoss()I" deprecated="29"/> - <method name="commitNow()V" since="24" deprecated="29"/> - <method name="commitNowAllowingStateLoss()V" since="24" deprecated="29"/> - <method name="detach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13" deprecated="29"/> - <method name="disallowAddToBackStack()Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="hide(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="isAddToBackStackAllowed()Z" deprecated="29"/> - <method name="isEmpty()Z" deprecated="29"/> - <method name="remove(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="replace(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="replace(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="runOnCommit(Ljava/lang/Runnable;)Landroid/app/FragmentTransaction;" since="26" deprecated="29"/> - <method name="setBreadCrumbShortTitle(I)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="setBreadCrumbShortTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="setBreadCrumbTitle(I)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="setBreadCrumbTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="setCustomAnimations(II)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="setCustomAnimations(IIII)Landroid/app/FragmentTransaction;" since="13" deprecated="29"/> - <method name="setPrimaryNavigationFragment(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="26" deprecated="29"/> - <method name="setReorderingAllowed(Z)Landroid/app/FragmentTransaction;" since="26" deprecated="29"/> - <method name="setTransition(I)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="setTransitionStyle(I)Landroid/app/FragmentTransaction;" deprecated="29"/> - <method name="show(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" deprecated="29"/> - <field name="TRANSIT_ENTER_MASK" deprecated="29"/> - <field name="TRANSIT_EXIT_MASK" deprecated="29"/> - <field name="TRANSIT_FRAGMENT_CLOSE" deprecated="29"/> - <field name="TRANSIT_FRAGMENT_FADE" deprecated="29"/> - <field name="TRANSIT_FRAGMENT_OPEN" deprecated="29"/> - <field name="TRANSIT_NONE" deprecated="29"/> - <field name="TRANSIT_UNSET" deprecated="29"/> + <method name="<init>()V"/> + <method name="add(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;"/> + <method name="add(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;"/> + <method name="add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;"/> + <method name="addSharedElement(Landroid/view/View;Ljava/lang/String;)Landroid/app/FragmentTransaction;" since="21"/> + <method name="addToBackStack(Ljava/lang/String;)Landroid/app/FragmentTransaction;"/> + <method name="attach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13"/> + <method name="commit()I"/> + <method name="commitAllowingStateLoss()I"/> + <method name="commitNow()V" since="24"/> + <method name="commitNowAllowingStateLoss()V" since="24"/> + <method name="detach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13"/> + <method name="disallowAddToBackStack()Landroid/app/FragmentTransaction;"/> + <method name="hide(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;"/> + <method name="isAddToBackStackAllowed()Z"/> + <method name="isEmpty()Z"/> + <method name="remove(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;"/> + <method name="replace(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;"/> + <method name="replace(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;"/> + <method name="runOnCommit(Ljava/lang/Runnable;)Landroid/app/FragmentTransaction;" since="26"/> + <method name="setBreadCrumbShortTitle(I)Landroid/app/FragmentTransaction;"/> + <method name="setBreadCrumbShortTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;"/> + <method name="setBreadCrumbTitle(I)Landroid/app/FragmentTransaction;"/> + <method name="setBreadCrumbTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;"/> + <method name="setCustomAnimations(II)Landroid/app/FragmentTransaction;"/> + <method name="setCustomAnimations(IIII)Landroid/app/FragmentTransaction;" since="13"/> + <method name="setPrimaryNavigationFragment(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="26"/> + <method name="setReorderingAllowed(Z)Landroid/app/FragmentTransaction;" since="26"/> + <method name="setTransition(I)Landroid/app/FragmentTransaction;"/> + <method name="setTransitionStyle(I)Landroid/app/FragmentTransaction;"/> + <method name="show(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;"/> + <field name="TRANSIT_ENTER_MASK"/> + <field name="TRANSIT_EXIT_MASK"/> + <field name="TRANSIT_FRAGMENT_CLOSE"/> + <field name="TRANSIT_FRAGMENT_FADE"/> + <field name="TRANSIT_FRAGMENT_OPEN"/> + <field name="TRANSIT_NONE"/> + <field name="TRANSIT_UNSET"/> </class> <class name="android/app/Instrumentation" since="1"> <extends name="java/lang/Object"/> @@ -5100,14 +5021,15 @@ </class> <class name="android/app/KeyguardManager" since="1"> <extends name="java/lang/Object"/> - <method name="createConfirmDeviceCredentialIntent(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/Intent;" since="21" deprecated="29"/> - <method name="exitKeyguardSecurely(Landroid/app/KeyguardManager$OnKeyguardExitResult;)V" deprecated="15"/> + <method name="<init>()V"/> + <method name="createConfirmDeviceCredentialIntent(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/Intent;" since="21"/> + <method name="exitKeyguardSecurely(Landroid/app/KeyguardManager$OnKeyguardExitResult;)V" deprecated="16"/> <method name="inKeyguardRestrictedInputMode()Z" deprecated="28"/> <method name="isDeviceLocked()Z" since="22"/> <method name="isDeviceSecure()Z" since="23"/> <method name="isKeyguardLocked()Z" since="16"/> <method name="isKeyguardSecure()Z" since="16"/> - <method name="newKeyguardLock(Ljava/lang/String;)Landroid/app/KeyguardManager$KeyguardLock;" deprecated="15"/> + <method name="newKeyguardLock(Ljava/lang/String;)Landroid/app/KeyguardManager$KeyguardLock;" deprecated="16"/> <method name="requestDismissKeyguard(Landroid/app/Activity;Landroid/app/KeyguardManager$KeyguardDismissCallback;)V" since="26"/> </class> <class name="android/app/KeyguardManager$KeyguardDismissCallback" since="26"> @@ -5117,14 +5039,16 @@ <method name="onDismissError()V"/> <method name="onDismissSucceeded()V"/> </class> - <class name="android/app/KeyguardManager$KeyguardLock" since="1" deprecated="15"> + <class name="android/app/KeyguardManager$KeyguardLock" since="1" deprecated="16"> <extends name="java/lang/Object"/> - <method name="disableKeyguard()V" deprecated="29"/> - <method name="reenableKeyguard()V" deprecated="29"/> + <method name="<init>(Landroid/app/KeyguardManager;)V" removed="29"/> + <method name="<init>(Landroid/app/KeyguardManager;Ljava/lang/String;)V" since="29"/> + <method name="disableKeyguard()V"/> + <method name="reenableKeyguard()V"/> </class> <class name="android/app/KeyguardManager$OnKeyguardExitResult" since="1" deprecated="26"> <extends name="java/lang/Object"/> - <method name="onKeyguardExitResult(Z)V" deprecated="29"/> + <method name="onKeyguardExitResult(Z)V"/> </class> <class name="android/app/LauncherActivity" since="1"> <extends name="android/app/ListActivity"/> @@ -5164,49 +5088,49 @@ </class> <class name="android/app/ListFragment" since="11" deprecated="28"> <extends name="android/app/Fragment"/> - <method name="<init>()V" deprecated="29"/> - <method name="getListAdapter()Landroid/widget/ListAdapter;" deprecated="29"/> - <method name="getListView()Landroid/widget/ListView;" deprecated="29"/> - <method name="getSelectedItemId()J" deprecated="29"/> - <method name="getSelectedItemPosition()I" deprecated="29"/> - <method name="onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V" deprecated="29"/> - <method name="setEmptyText(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setListAdapter(Landroid/widget/ListAdapter;)V" deprecated="29"/> - <method name="setListShown(Z)V" deprecated="29"/> - <method name="setListShownNoAnimation(Z)V" deprecated="29"/> - <method name="setSelection(I)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="getListAdapter()Landroid/widget/ListAdapter;"/> + <method name="getListView()Landroid/widget/ListView;"/> + <method name="getSelectedItemId()J"/> + <method name="getSelectedItemPosition()I"/> + <method name="onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V"/> + <method name="setEmptyText(Ljava/lang/CharSequence;)V"/> + <method name="setListAdapter(Landroid/widget/ListAdapter;)V"/> + <method name="setListShown(Z)V"/> + <method name="setListShownNoAnimation(Z)V"/> + <method name="setSelection(I)V"/> </class> <class name="android/app/LoaderManager" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="destroyLoader(I)V" deprecated="29"/> - <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" deprecated="29"/> - <method name="enableDebugLogging(Z)V" deprecated="29"/> - <method name="getLoader(I)Landroid/content/Loader;" deprecated="29"/> - <method name="initLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;" deprecated="29"/> - <method name="restartLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;" deprecated="29"/> + <method name="<init>()V"/> + <method name="destroyLoader(I)V"/> + <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> + <method name="enableDebugLogging(Z)V"/> + <method name="getLoader(I)Landroid/content/Loader;"/> + <method name="initLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;"/> + <method name="restartLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;"/> </class> <class name="android/app/LoaderManager$LoaderCallbacks" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="onCreateLoader(ILandroid/os/Bundle;)Landroid/content/Loader;" deprecated="29"/> - <method name="onLoadFinished(Landroid/content/Loader;Ljava/lang/Object;)V" deprecated="29"/> - <method name="onLoaderReset(Landroid/content/Loader;)V" deprecated="29"/> + <method name="onCreateLoader(ILandroid/os/Bundle;)Landroid/content/Loader;"/> + <method name="onLoadFinished(Landroid/content/Loader;Ljava/lang/Object;)V"/> + <method name="onLoaderReset(Landroid/content/Loader;)V"/> </class> <class name="android/app/LocalActivityManager" since="1" deprecated="13"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/app/Activity;Z)V" deprecated="29"/> - <method name="destroyActivity(Ljava/lang/String;Z)Landroid/view/Window;" deprecated="29"/> - <method name="dispatchCreate(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="dispatchDestroy(Z)V" deprecated="29"/> - <method name="dispatchPause(Z)V" deprecated="29"/> - <method name="dispatchResume()V" deprecated="29"/> - <method name="dispatchStop()V" deprecated="29"/> - <method name="getActivity(Ljava/lang/String;)Landroid/app/Activity;" deprecated="29"/> - <method name="getCurrentActivity()Landroid/app/Activity;" deprecated="29"/> - <method name="getCurrentId()Ljava/lang/String;" deprecated="29"/> - <method name="removeAllActivities()V" deprecated="29"/> - <method name="saveInstanceState()Landroid/os/Bundle;" deprecated="29"/> - <method name="startActivity(Ljava/lang/String;Landroid/content/Intent;)Landroid/view/Window;" deprecated="29"/> + <method name="<init>(Landroid/app/Activity;Z)V"/> + <method name="destroyActivity(Ljava/lang/String;Z)Landroid/view/Window;"/> + <method name="dispatchCreate(Landroid/os/Bundle;)V"/> + <method name="dispatchDestroy(Z)V"/> + <method name="dispatchPause(Z)V"/> + <method name="dispatchResume()V"/> + <method name="dispatchStop()V"/> + <method name="getActivity(Ljava/lang/String;)Landroid/app/Activity;"/> + <method name="getCurrentActivity()Landroid/app/Activity;"/> + <method name="getCurrentId()Ljava/lang/String;"/> + <method name="removeAllActivities()V"/> + <method name="saveInstanceState()Landroid/os/Bundle;"/> + <method name="startActivity(Ljava/lang/String;Landroid/content/Intent;)Landroid/view/Window;"/> </class> <class name="android/app/MediaRouteActionProvider" since="16"> <extends name="android/view/ActionProvider"/> @@ -5238,23 +5162,20 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>()V"/> - <method name="<init>(ILjava/lang/CharSequence;J)V" deprecated="15"/> + <method name="<init>(ILjava/lang/CharSequence;J)V" deprecated="16"/> <method name="<init>(Landroid/os/Parcel;)V"/> <method name="clone()Landroid/app/Notification;" since="9"/> - <method name="getAllowSystemGeneratedContextualActions()Z" since="29"/> <method name="getBadgeIconType()I" since="26"/> - <method name="getBubbleMetadata()Landroid/app/Notification$BubbleMetadata;" since="29"/> <method name="getChannelId()Ljava/lang/String;" since="26"/> <method name="getGroup()Ljava/lang/String;" since="20"/> <method name="getGroupAlertBehavior()I" since="26"/> <method name="getLargeIcon()Landroid/graphics/drawable/Icon;" since="23"/> - <method name="getLocusId()Landroid/content/LocusId;" since="29"/> <method name="getSettingsText()Ljava/lang/CharSequence;" since="26"/> <method name="getShortcutId()Ljava/lang/String;" since="26"/> <method name="getSmallIcon()Landroid/graphics/drawable/Icon;" since="23"/> <method name="getSortKey()Ljava/lang/String;" since="20"/> <method name="getTimeoutAfter()J" since="26"/> - <method name="setLatestEventInfo(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V" deprecated="15" removed="23"/> + <method name="setLatestEventInfo(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V" deprecated="16" removed="23"/> <field name="AUDIO_ATTRIBUTES_DEFAULT" since="21"/> <field name="BADGE_ICON_LARGE" since="26"/> <field name="BADGE_ICON_NONE" since="26"/> @@ -5320,7 +5241,6 @@ <field name="EXTRA_TITLE" since="19"/> <field name="EXTRA_TITLE_BIG" since="19"/> <field name="FLAG_AUTO_CANCEL"/> - <field name="FLAG_BUBBLE" since="29"/> <field name="FLAG_FOREGROUND_SERVICE" since="5"/> <field name="FLAG_GROUP_SUMMARY" since="20"/> <field name="FLAG_HIGH_PRIORITY" since="11" deprecated="16"/> @@ -5384,7 +5304,6 @@ <method name="getIcon()Landroid/graphics/drawable/Icon;" since="23"/> <method name="getRemoteInputs()[Landroid/app/RemoteInput;" since="20"/> <method name="getSemanticAction()I" since="28"/> - <method name="isContextual()Z" since="29"/> <field name="CREATOR"/> <field name="SEMANTIC_ACTION_ARCHIVE" since="28"/> <field name="SEMANTIC_ACTION_CALL" since="28"/> @@ -5412,7 +5331,6 @@ <method name="extend(Landroid/app/Notification$Action$Extender;)Landroid/app/Notification$Action$Builder;"/> <method name="getExtras()Landroid/os/Bundle;"/> <method name="setAllowGeneratedReplies(Z)Landroid/app/Notification$Action$Builder;" since="24"/> - <method name="setContextual(Z)Landroid/app/Notification$Action$Builder;" since="29"/> <method name="setSemanticAction(I)Landroid/app/Notification$Action$Builder;" since="28"/> </class> <class name="android/app/Notification$Action$Extender" since="20"> @@ -5456,30 +5374,6 @@ <method name="setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;"/> <method name="setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;"/> </class> - <class name="android/app/Notification$BubbleMetadata" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getAutoExpandBubble()Z"/> - <method name="getDeleteIntent()Landroid/app/PendingIntent;"/> - <method name="getDesiredHeight()I"/> - <method name="getDesiredHeightResId()I"/> - <method name="getIcon()Landroid/graphics/drawable/Icon;"/> - <method name="getIntent()Landroid/app/PendingIntent;"/> - <method name="isNotificationSuppressed()Z"/> - <field name="CREATOR"/> - </class> - <class name="android/app/Notification$BubbleMetadata$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/app/Notification$BubbleMetadata;"/> - <method name="setAutoExpandBubble(Z)Landroid/app/Notification$BubbleMetadata$Builder;"/> - <method name="setDeleteIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$BubbleMetadata$Builder;"/> - <method name="setDesiredHeight(I)Landroid/app/Notification$BubbleMetadata$Builder;"/> - <method name="setDesiredHeightResId(I)Landroid/app/Notification$BubbleMetadata$Builder;"/> - <method name="setIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$BubbleMetadata$Builder;"/> - <method name="setIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$BubbleMetadata$Builder;"/> - <method name="setSuppressNotification(Z)Landroid/app/Notification$BubbleMetadata$Builder;"/> - </class> <class name="android/app/Notification$Builder" since="11"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/content/Context;)V" deprecated="26"/> @@ -5499,10 +5393,8 @@ <method name="getStyle()Landroid/app/Notification$Style;" since="28"/> <method name="recoverBuilder(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder;" since="24"/> <method name="setActions([Landroid/app/Notification$Action;)Landroid/app/Notification$Builder;" since="24"/> - <method name="setAllowSystemGeneratedContextualActions(Z)Landroid/app/Notification$Builder;" since="29"/> <method name="setAutoCancel(Z)Landroid/app/Notification$Builder;"/> <method name="setBadgeIconType(I)Landroid/app/Notification$Builder;" since="26"/> - <method name="setBubbleMetadata(Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$Builder;" since="29"/> <method name="setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder;" since="21"/> <method name="setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder;" since="26"/> <method name="setChronometerCountDown(Z)Landroid/app/Notification$Builder;" since="24"/> @@ -5527,7 +5419,6 @@ <method name="setLargeIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder;" since="23"/> <method name="setLights(III)Landroid/app/Notification$Builder;" deprecated="26"/> <method name="setLocalOnly(Z)Landroid/app/Notification$Builder;" since="20"/> - <method name="setLocusId(Landroid/content/LocusId;)Landroid/app/Notification$Builder;" since="29"/> <method name="setNumber(I)Landroid/app/Notification$Builder;" deprecated="24"/> <method name="setOngoing(Z)Landroid/app/Notification$Builder;"/> <method name="setOnlyAlertOnce(Z)Landroid/app/Notification$Builder;"/> @@ -5578,6 +5469,8 @@ </class> <class name="android/app/Notification$CarExtender$UnreadConversation" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([Ljava/lang/String;Landroid/app/RemoteInput;Landroid/app/PendingIntent;Landroid/app/PendingIntent;[Ljava/lang/String;J)V" since="29"/> <method name="getLatestTimestamp()J"/> <method name="getMessages()[Ljava/lang/String;"/> <method name="getParticipant()Ljava/lang/String;"/> @@ -5662,13 +5555,13 @@ <method name="<init>(Landroid/app/Notification;)V"/> <method name="addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$WearableExtender;"/> <method name="addActions(Ljava/util/List;)Landroid/app/Notification$WearableExtender;"/> - <method name="addPage(Landroid/app/Notification;)Landroid/app/Notification$WearableExtender;" deprecated="29"/> - <method name="addPages(Ljava/util/List;)Landroid/app/Notification$WearableExtender;" deprecated="29"/> + <method name="addPage(Landroid/app/Notification;)Landroid/app/Notification$WearableExtender;"/> + <method name="addPages(Ljava/util/List;)Landroid/app/Notification$WearableExtender;"/> <method name="clearActions()Landroid/app/Notification$WearableExtender;"/> - <method name="clearPages()Landroid/app/Notification$WearableExtender;" deprecated="29"/> + <method name="clearPages()Landroid/app/Notification$WearableExtender;"/> <method name="clone()Landroid/app/Notification$WearableExtender;"/> <method name="getActions()Ljava/util/List;"/> - <method name="getBackground()Landroid/graphics/Bitmap;" deprecated="29"/> + <method name="getBackground()Landroid/graphics/Bitmap;"/> <method name="getBridgeTag()Ljava/lang/String;" since="26"/> <method name="getContentAction()I"/> <method name="getContentIcon()I" deprecated="28"/> @@ -5677,17 +5570,17 @@ <method name="getCustomContentHeight()I" deprecated="28"/> <method name="getCustomSizePreset()I" deprecated="28"/> <method name="getDismissalId()Ljava/lang/String;" since="24"/> - <method name="getDisplayIntent()Landroid/app/PendingIntent;" deprecated="29"/> + <method name="getDisplayIntent()Landroid/app/PendingIntent;"/> <method name="getGravity()I" deprecated="28"/> - <method name="getHintAmbientBigPicture()Z" since="24" deprecated="29"/> + <method name="getHintAmbientBigPicture()Z" since="24"/> <method name="getHintAvoidBackgroundClipping()Z" since="22" deprecated="28"/> <method name="getHintContentIntentLaunchesActivity()Z" since="24"/> <method name="getHintHideIcon()Z" deprecated="28"/> <method name="getHintScreenTimeout()I" since="22" deprecated="28"/> <method name="getHintShowBackgroundOnly()Z" deprecated="28"/> - <method name="getPages()Ljava/util/List;" deprecated="29"/> + <method name="getPages()Ljava/util/List;"/> <method name="getStartScrollBottom()Z"/> - <method name="setBackground(Landroid/graphics/Bitmap;)Landroid/app/Notification$WearableExtender;" deprecated="29"/> + <method name="setBackground(Landroid/graphics/Bitmap;)Landroid/app/Notification$WearableExtender;"/> <method name="setBridgeTag(Ljava/lang/String;)Landroid/app/Notification$WearableExtender;" since="26"/> <method name="setContentAction(I)Landroid/app/Notification$WearableExtender;"/> <method name="setContentIcon(I)Landroid/app/Notification$WearableExtender;" deprecated="28"/> @@ -5696,30 +5589,29 @@ <method name="setCustomContentHeight(I)Landroid/app/Notification$WearableExtender;" deprecated="28"/> <method name="setCustomSizePreset(I)Landroid/app/Notification$WearableExtender;" deprecated="28"/> <method name="setDismissalId(Ljava/lang/String;)Landroid/app/Notification$WearableExtender;" since="24"/> - <method name="setDisplayIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$WearableExtender;" deprecated="29"/> + <method name="setDisplayIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$WearableExtender;"/> <method name="setGravity(I)Landroid/app/Notification$WearableExtender;" deprecated="28"/> - <method name="setHintAmbientBigPicture(Z)Landroid/app/Notification$WearableExtender;" since="24" deprecated="29"/> + <method name="setHintAmbientBigPicture(Z)Landroid/app/Notification$WearableExtender;" since="24"/> <method name="setHintAvoidBackgroundClipping(Z)Landroid/app/Notification$WearableExtender;" since="22" deprecated="28"/> <method name="setHintContentIntentLaunchesActivity(Z)Landroid/app/Notification$WearableExtender;" since="24"/> <method name="setHintHideIcon(Z)Landroid/app/Notification$WearableExtender;" deprecated="28"/> <method name="setHintScreenTimeout(I)Landroid/app/Notification$WearableExtender;" since="22" deprecated="28"/> <method name="setHintShowBackgroundOnly(Z)Landroid/app/Notification$WearableExtender;" deprecated="28"/> <method name="setStartScrollBottom(Z)Landroid/app/Notification$WearableExtender;"/> - <field name="SCREEN_TIMEOUT_LONG" since="22" deprecated="29"/> - <field name="SCREEN_TIMEOUT_SHORT" since="22" deprecated="29"/> - <field name="SIZE_DEFAULT" deprecated="29"/> - <field name="SIZE_FULL_SCREEN" deprecated="29"/> - <field name="SIZE_LARGE" deprecated="29"/> - <field name="SIZE_MEDIUM" deprecated="29"/> - <field name="SIZE_SMALL" deprecated="29"/> - <field name="SIZE_XSMALL" deprecated="29"/> + <field name="SCREEN_TIMEOUT_LONG" since="22"/> + <field name="SCREEN_TIMEOUT_SHORT" since="22"/> + <field name="SIZE_DEFAULT"/> + <field name="SIZE_FULL_SCREEN"/> + <field name="SIZE_LARGE"/> + <field name="SIZE_MEDIUM"/> + <field name="SIZE_SMALL"/> + <field name="SIZE_XSMALL"/> <field name="UNSET_ACTION_INDEX"/> </class> <class name="android/app/NotificationChannel" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V"/> - <method name="canBubble()Z" since="29"/> <method name="canBypassDnd()Z"/> <method name="canShowBadge()Z"/> <method name="enableLights(Z)V"/> @@ -5734,8 +5626,6 @@ <method name="getName()Ljava/lang/CharSequence;"/> <method name="getSound()Landroid/net/Uri;"/> <method name="getVibrationPattern()[J"/> - <method name="hasUserSetImportance()Z" since="29"/> - <method name="setAllowBubbles(Z)V" since="29"/> <method name="setBypassDnd(Z)V"/> <method name="setDescription(Ljava/lang/String;)V"/> <method name="setGroup(Ljava/lang/String;)V"/> @@ -5766,11 +5656,10 @@ </class> <class name="android/app/NotificationManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/os/Handler;)V" since="29"/> <method name="addAutomaticZenRule(Landroid/app/AutomaticZenRule;)Ljava/lang/String;" since="24"/> - <method name="areBubblesAllowed()Z" since="29"/> <method name="areNotificationsEnabled()Z" since="24"/> - <method name="areNotificationsPaused()Z" since="29"/> - <method name="canNotifyAsPackage(Ljava/lang/String;)Z" since="29"/> <method name="cancel(I)V"/> <method name="cancel(Ljava/lang/String;I)V" since="5"/> <method name="cancelAll()V"/> @@ -5789,28 +5678,21 @@ <method name="getNotificationChannelGroup(Ljava/lang/String;)Landroid/app/NotificationChannelGroup;" since="28"/> <method name="getNotificationChannelGroups()Ljava/util/List;" since="26"/> <method name="getNotificationChannels()Ljava/util/List;" since="26"/> - <method name="getNotificationDelegate()Ljava/lang/String;" since="29"/> <method name="getNotificationPolicy()Landroid/app/NotificationManager$Policy;" since="23"/> <method name="isNotificationListenerAccessGranted(Landroid/content/ComponentName;)Z" since="27"/> <method name="isNotificationPolicyAccessGranted()Z" since="23"/> <method name="notify(ILandroid/app/Notification;)V"/> <method name="notify(Ljava/lang/String;ILandroid/app/Notification;)V" since="5"/> - <method name="notifyAsPackage(Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;)V" since="29"/> <method name="removeAutomaticZenRule(Ljava/lang/String;)Z" since="24"/> - <method name="setAutomaticZenRuleState(Ljava/lang/String;Landroid/service/notification/Condition;)V" since="29"/> <method name="setInterruptionFilter(I)V" since="23"/> - <method name="setNotificationDelegate(Ljava/lang/String;)V" since="29"/> <method name="setNotificationPolicy(Landroid/app/NotificationManager$Policy;)V" since="23"/> - <method name="shouldHideSilentStatusBarIcons()Z" since="29"/> <method name="updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z" since="24"/> <field name="ACTION_APP_BLOCK_STATE_CHANGED" since="28"/> - <field name="ACTION_AUTOMATIC_ZEN_RULE" since="29"/> <field name="ACTION_INTERRUPTION_FILTER_CHANGED" since="23"/> <field name="ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED" since="28"/> <field name="ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED" since="28"/> <field name="ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED" since="23"/> <field name="ACTION_NOTIFICATION_POLICY_CHANGED" since="23"/> - <field name="EXTRA_AUTOMATIC_RULE_ID" since="29"/> <field name="EXTRA_BLOCKED_STATE" since="28"/> <field name="EXTRA_NOTIFICATION_CHANNEL_GROUP_ID" since="28"/> <field name="EXTRA_NOTIFICATION_CHANNEL_ID" since="28"/> @@ -5826,8 +5708,6 @@ <field name="INTERRUPTION_FILTER_NONE" since="23"/> <field name="INTERRUPTION_FILTER_PRIORITY" since="23"/> <field name="INTERRUPTION_FILTER_UNKNOWN" since="23"/> - <field name="META_DATA_AUTOMATIC_RULE_TYPE" since="29"/> - <field name="META_DATA_RULE_INSTANCE_LIMIT" since="29"/> </class> <class name="android/app/NotificationManager$Policy" since="23"> <extends name="java/lang/Object"/> @@ -5866,6 +5746,8 @@ <class name="android/app/PendingIntent" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/IBinder;Ljava/lang/Object;)V" since="29"/> <method name="cancel()V"/> <method name="getActivities(Landroid/content/Context;I[Landroid/content/Intent;I)Landroid/app/PendingIntent;" since="11"/> <method name="getActivities(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;" since="16"/> @@ -5908,6 +5790,8 @@ <class name="android/app/Person" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getIcon()Landroid/graphics/drawable/Icon;"/> <method name="getKey()Ljava/lang/String;"/> <method name="getName()Ljava/lang/CharSequence;"/> @@ -5931,6 +5815,7 @@ <class name="android/app/PictureInPictureParams" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> </class> <class name="android/app/PictureInPictureParams$Builder" since="26"> @@ -5952,37 +5837,29 @@ </class> <class name="android/app/ProgressDialog" since="1" deprecated="26"> <extends name="android/app/AlertDialog"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;I)V" deprecated="29"/> - <method name="getMax()I" deprecated="29"/> - <method name="getProgress()I" deprecated="29"/> - <method name="getSecondaryProgress()I" deprecated="29"/> - <method name="incrementProgressBy(I)V" deprecated="29"/> - <method name="incrementSecondaryProgressBy(I)V" deprecated="29"/> - <method name="isIndeterminate()Z" deprecated="29"/> - <method name="setIndeterminate(Z)V" deprecated="29"/> - <method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V" deprecated="29"/> - <method name="setMax(I)V" deprecated="29"/> - <method name="setProgress(I)V" deprecated="29"/> - <method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V" deprecated="29"/> - <method name="setProgressNumberFormat(Ljava/lang/String;)V" since="11" deprecated="29"/> - <method name="setProgressPercentFormat(Ljava/text/NumberFormat;)V" since="11" deprecated="29"/> - <method name="setProgressStyle(I)V" deprecated="29"/> - <method name="setSecondaryProgress(I)V" deprecated="29"/> - <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/app/ProgressDialog;" deprecated="29"/> - <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Landroid/app/ProgressDialog;" deprecated="29"/> - <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZ)Landroid/app/ProgressDialog;" deprecated="29"/> - <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZLandroid/content/DialogInterface$OnCancelListener;)Landroid/app/ProgressDialog;" deprecated="29"/> - <field name="STYLE_HORIZONTAL" deprecated="29"/> - <field name="STYLE_SPINNER" deprecated="29"/> - </class> - <class name="android/app/RecoverableSecurityException" since="29"> - <extends name="java/lang/SecurityException"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Ljava/lang/Throwable;Ljava/lang/CharSequence;Landroid/app/RemoteAction;)V"/> - <method name="getUserAction()Landroid/app/RemoteAction;"/> - <method name="getUserMessage()Ljava/lang/CharSequence;"/> - <field name="CREATOR"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;I)V"/> + <method name="getMax()I"/> + <method name="getProgress()I"/> + <method name="getSecondaryProgress()I"/> + <method name="incrementProgressBy(I)V"/> + <method name="incrementSecondaryProgressBy(I)V"/> + <method name="isIndeterminate()Z"/> + <method name="setIndeterminate(Z)V"/> + <method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V"/> + <method name="setMax(I)V"/> + <method name="setProgress(I)V"/> + <method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V"/> + <method name="setProgressNumberFormat(Ljava/lang/String;)V" since="11"/> + <method name="setProgressPercentFormat(Ljava/text/NumberFormat;)V" since="11"/> + <method name="setProgressStyle(I)V"/> + <method name="setSecondaryProgress(I)V"/> + <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/app/ProgressDialog;"/> + <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Landroid/app/ProgressDialog;"/> + <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZ)Landroid/app/ProgressDialog;"/> + <method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZLandroid/content/DialogInterface$OnCancelListener;)Landroid/app/ProgressDialog;"/> + <field name="STYLE_HORIZONTAL"/> + <field name="STYLE_SPINNER"/> </class> <class name="android/app/RemoteAction" since="26"> <extends name="java/lang/Object"/> @@ -6003,13 +5880,14 @@ <class name="android/app/RemoteInput" since="20"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="addDataResultToIntent(Landroid/app/RemoteInput;Landroid/content/Intent;Ljava/util/Map;)V" since="26"/> <method name="addResultsToIntent([Landroid/app/RemoteInput;Landroid/content/Intent;Landroid/os/Bundle;)V"/> <method name="getAllowFreeFormInput()Z"/> <method name="getAllowedDataTypes()Ljava/util/Set;" since="26"/> <method name="getChoices()[Ljava/lang/CharSequence;"/> <method name="getDataResultsFromIntent(Landroid/content/Intent;Ljava/lang/String;)Ljava/util/Map;" since="26"/> - <method name="getEditChoicesBeforeSending()I" since="29"/> <method name="getExtras()Landroid/os/Bundle;"/> <method name="getLabel()Ljava/lang/CharSequence;"/> <method name="getResultKey()Ljava/lang/String;"/> @@ -6018,9 +5896,6 @@ <method name="isDataOnly()Z" since="26"/> <method name="setResultsSource(Landroid/content/Intent;I)V" since="28"/> <field name="CREATOR"/> - <field name="EDIT_CHOICES_BEFORE_SENDING_AUTO" since="29"/> - <field name="EDIT_CHOICES_BEFORE_SENDING_DISABLED" since="29"/> - <field name="EDIT_CHOICES_BEFORE_SENDING_ENABLED" since="29"/> <field name="EXTRA_RESULTS_DATA"/> <field name="RESULTS_CLIP_LABEL"/> <field name="SOURCE_CHOICE" since="28"/> @@ -6035,13 +5910,13 @@ <method name="setAllowDataType(Ljava/lang/String;Z)Landroid/app/RemoteInput$Builder;" since="26"/> <method name="setAllowFreeFormInput(Z)Landroid/app/RemoteInput$Builder;"/> <method name="setChoices([Ljava/lang/CharSequence;)Landroid/app/RemoteInput$Builder;"/> - <method name="setEditChoicesBeforeSending(I)Landroid/app/RemoteInput$Builder;" since="29"/> <method name="setLabel(Ljava/lang/CharSequence;)Landroid/app/RemoteInput$Builder;"/> </class> <class name="android/app/SearchManager" since="1"> <extends name="java/lang/Object"/> <implements name="android/content/DialogInterface$OnCancelListener"/> <implements name="android/content/DialogInterface$OnDismissListener"/> + <method name="<init>()V"/> <method name="getGlobalSearchActivity()Landroid/content/ComponentName;" since="16"/> <method name="getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;" since="8"/> <method name="getSearchablesInGlobalSearch()Ljava/util/List;" since="8"/> @@ -6114,6 +5989,8 @@ <class name="android/app/SearchableInfo" since="8"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="autoUrlDetect()Z"/> <method name="getHintId()I"/> <method name="getImeOptions()I"/> @@ -6147,18 +6024,16 @@ <method name="<init>()V"/> <method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> <method name="getApplication()Landroid/app/Application;"/> - <method name="getForegroundServiceType()I" since="29"/> <method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;"/> <method name="onCreate()V"/> <method name="onDestroy()V"/> <method name="onRebind(Landroid/content/Intent;)V"/> - <method name="onStart(Landroid/content/Intent;I)V" deprecated="15"/> + <method name="onStart(Landroid/content/Intent;I)V" deprecated="16"/> <method name="onStartCommand(Landroid/content/Intent;II)I" since="5"/> <method name="onTaskRemoved(Landroid/content/Intent;)V" since="14"/> <method name="onUnbind(Landroid/content/Intent;)Z"/> <method name="setForeground(Z)V" removed="11"/> <method name="startForeground(ILandroid/app/Notification;)V" since="5"/> - <method name="startForeground(ILandroid/app/Notification;I)V" since="29"/> <method name="stopForeground(I)V" since="24"/> <method name="stopForeground(Z)V" since="5"/> <method name="stopSelf()V"/> @@ -6189,30 +6064,18 @@ <extends name="java/lang/Object"/> <method name="onSharedElementsReady()V"/> </class> - <class name="android/app/StatusBarManager" since="29"> - <extends name="java/lang/Object"/> - </class> <class name="android/app/TabActivity" since="1" deprecated="13"> <extends name="android/app/ActivityGroup"/> - <method name="<init>()V" deprecated="29"/> - <method name="getTabHost()Landroid/widget/TabHost;" deprecated="29"/> - <method name="getTabWidget()Landroid/widget/TabWidget;" deprecated="29"/> - <method name="setDefaultTab(I)V" deprecated="29"/> - <method name="setDefaultTab(Ljava/lang/String;)V" deprecated="29"/> - </class> - <class name="android/app/TaskInfo" since="29"> - <extends name="java/lang/Object"/> - <field name="baseActivity"/> - <field name="baseIntent"/> - <field name="isRunning"/> - <field name="numActivities"/> - <field name="origActivity"/> - <field name="taskDescription"/> - <field name="taskId"/> - <field name="topActivity"/> + <method name="<init>()V"/> + <method name="getTabHost()Landroid/widget/TabHost;"/> + <method name="getTabWidget()Landroid/widget/TabWidget;"/> + <method name="setDefaultTab(I)V"/> + <method name="setDefaultTab(Ljava/lang/String;)V"/> </class> <class name="android/app/TaskStackBuilder" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addNextIntent(Landroid/content/Intent;)Landroid/app/TaskStackBuilder;"/> <method name="addNextIntentWithParentStack(Landroid/content/Intent;)Landroid/app/TaskStackBuilder;"/> <method name="addParentStack(Landroid/app/Activity;)Landroid/app/TaskStackBuilder;"/> @@ -6241,11 +6104,9 @@ </class> <class name="android/app/UiAutomation" since="18"> <extends name="java/lang/Object"/> - <method name="adoptShellPermissionIdentity()V" since="29"/> - <method name="adoptShellPermissionIdentity([Ljava/lang/String;)V" since="29"/> + <method name="<init>()V"/> <method name="clearWindowAnimationFrameStats()V" since="21"/> <method name="clearWindowContentFrameStats(I)Z" since="21"/> - <method name="dropShellPermissionIdentity()V" since="29"/> <method name="executeAndWaitForEvent(Ljava/lang/Runnable;Landroid/app/UiAutomation$AccessibilityEventFilter;J)Landroid/view/accessibility/AccessibilityEvent;"/> <method name="executeShellCommand(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" since="21"/> <method name="findFocus(I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="21"/> @@ -6284,6 +6145,7 @@ </class> <class name="android/app/UiModeManager" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="disableCarMode(I)V"/> <method name="enableCarMode(I)V"/> <method name="getCurrentModeType()I"/> @@ -6302,15 +6164,12 @@ </class> <class name="android/app/VoiceInteractor" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getActiveRequest(Ljava/lang/String;)Landroid/app/VoiceInteractor$Request;"/> <method name="getActiveRequests()[Landroid/app/VoiceInteractor$Request;"/> - <method name="isDestroyed()Z" since="29"/> - <method name="notifyDirectActionsChanged()V" since="29"/> - <method name="registerOnDestroyedCallback(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Z" since="29"/> <method name="submitRequest(Landroid/app/VoiceInteractor$Request;)Z"/> <method name="submitRequest(Landroid/app/VoiceInteractor$Request;Ljava/lang/String;)Z"/> <method name="supportsCommands([Ljava/lang/String;)[Z"/> - <method name="unregisterOnDestroyedCallback(Ljava/lang/Runnable;)Z" since="29"/> </class> <class name="android/app/VoiceInteractor$AbortVoiceRequest" since="23"> <extends name="android/app/VoiceInteractor$Request"/> @@ -6362,6 +6221,7 @@ </class> <class name="android/app/VoiceInteractor$Request" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="getActivity()Landroid/app/Activity;"/> <method name="getContext()Landroid/content/Context;"/> @@ -6392,7 +6252,6 @@ <method name="getServiceInfo()Landroid/content/pm/ServiceInfo;"/> <method name="getServiceName()Ljava/lang/String;"/> <method name="getSettingsActivity()Ljava/lang/String;"/> - <method name="getSettingsSliceUri()Landroid/net/Uri;" since="29"/> <method name="getShowMetadataInPreview()Z" since="25"/> <method name="loadAuthor(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;"/> <method name="loadContextDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" since="25"/> @@ -6401,11 +6260,11 @@ <method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;"/> <method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;"/> <method name="loadThumbnail(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;"/> - <method name="supportsMultipleDisplays()Z" since="29"/> <field name="CREATOR"/> </class> <class name="android/app/WallpaperManager" since="5"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;)V" since="27"/> <method name="clear()V"/> <method name="clear(I)V" since="24"/> @@ -6460,22 +6319,14 @@ <extends name="java/lang/Object"/> <method name="onColorsChanged(Landroid/app/WallpaperColors;I)V"/> </class> - <class name="android/app/ZygotePreload" since="29"> - <extends name="java/lang/Object"/> - <method name="doPreload(Landroid/content/pm/ApplicationInfo;)V"/> - </class> <class name="android/app/admin/ConnectEvent" since="26"> <extends name="android/app/admin/NetworkEvent"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getInetAddress()Ljava/net/InetAddress;"/> <method name="getPort()I"/> <field name="CREATOR"/> </class> - <class name="android/app/admin/DelegatedAdminReceiver" since="29"> - <extends name="android/content/BroadcastReceiver"/> - <method name="<init>()V"/> - <method name="onChoosePrivateKeyAlias(Landroid/content/Context;Landroid/content/Intent;ILandroid/net/Uri;Ljava/lang/String;)Ljava/lang/String;"/> - <method name="onNetworkLogsAvailable(Landroid/content/Context;Landroid/content/Intent;JI)V"/> - </class> <class name="android/app/admin/DeviceAdminInfo" since="8"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -6537,13 +6388,11 @@ <method name="onUserStarted(Landroid/content/Context;Landroid/content/Intent;Landroid/os/UserHandle;)V" since="28"/> <method name="onUserStopped(Landroid/content/Context;Landroid/content/Intent;Landroid/os/UserHandle;)V" since="28"/> <method name="onUserSwitched(Landroid/content/Context;Landroid/content/Intent;Landroid/os/UserHandle;)V" since="28"/> - <field name="ACTION_CHOOSE_PRIVATE_KEY_ALIAS" since="29"/> <field name="ACTION_DEVICE_ADMIN_DISABLED"/> <field name="ACTION_DEVICE_ADMIN_DISABLE_REQUESTED"/> <field name="ACTION_DEVICE_ADMIN_ENABLED"/> <field name="ACTION_LOCK_TASK_ENTERING" since="21"/> <field name="ACTION_LOCK_TASK_EXITING" since="21"/> - <field name="ACTION_NETWORK_LOGS_AVAILABLE" since="29"/> <field name="ACTION_PASSWORD_CHANGED"/> <field name="ACTION_PASSWORD_EXPIRING" since="11"/> <field name="ACTION_PASSWORD_FAILED"/> @@ -6562,6 +6411,7 @@ </class> <class name="android/app/admin/DevicePolicyManager" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V" since="21"/> <method name="addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z" since="21"/> <method name="addOverrideApn(Landroid/content/ComponentName;Landroid/telephony/data/ApnSetting;)I" since="28"/> @@ -6585,7 +6435,6 @@ <method name="getAccountTypesWithManagementDisabled()[Ljava/lang/String;" since="21"/> <method name="getActiveAdmins()Ljava/util/List;"/> <method name="getAffiliationIds(Landroid/content/ComponentName;)Ljava/util/Set;" since="26"/> - <method name="getAlwaysOnVpnLockdownWhitelist(Landroid/content/ComponentName;)Ljava/util/Set;" since="29"/> <method name="getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;" since="24"/> <method name="getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;)Landroid/os/Bundle;" since="21"/> <method name="getApplicationRestrictionsManagingPackage(Landroid/content/ComponentName;)Ljava/lang/String;" since="24" deprecated="26"/> @@ -6594,7 +6443,6 @@ <method name="getBluetoothContactSharingDisabled(Landroid/content/ComponentName;)Z" since="23"/> <method name="getCameraDisabled(Landroid/content/ComponentName;)Z" since="14"/> <method name="getCertInstallerPackage(Landroid/content/ComponentName;)Ljava/lang/String;" since="23" deprecated="26"/> - <method name="getCrossProfileCalendarPackages(Landroid/content/ComponentName;)Ljava/util/Set;" since="29"/> <method name="getCrossProfileCallerIdDisabled(Landroid/content/ComponentName;)Z" since="21"/> <method name="getCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;)Z" since="24"/> <method name="getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;" since="21"/> @@ -6603,8 +6451,6 @@ <method name="getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;" since="26"/> <method name="getDeviceOwnerLockScreenInfo()Ljava/lang/CharSequence;" since="24"/> <method name="getEndUserSessionMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;" since="28"/> - <method name="getGlobalPrivateDnsHost(Landroid/content/ComponentName;)Ljava/lang/String;" since="29"/> - <method name="getGlobalPrivateDnsMode(Landroid/content/ComponentName;)I" since="29"/> <method name="getInstalledCaCerts(Landroid/content/ComponentName;)Ljava/util/List;" since="21"/> <method name="getKeepUninstalledPackages(Landroid/content/ComponentName;)Ljava/util/List;" since="28"/> <method name="getKeyguardDisabledFeatures(Landroid/content/ComponentName;)I" since="17"/> @@ -6618,7 +6464,6 @@ <method name="getOrganizationName(Landroid/content/ComponentName;)Ljava/lang/CharSequence;" since="24"/> <method name="getOverrideApns(Landroid/content/ComponentName;)Ljava/util/List;" since="28"/> <method name="getParentProfileInstance(Landroid/content/ComponentName;)Landroid/app/admin/DevicePolicyManager;" since="24"/> - <method name="getPasswordComplexity()I" since="29"/> <method name="getPasswordExpiration(Landroid/content/ComponentName;)J" since="11"/> <method name="getPasswordExpirationTimeout(Landroid/content/ComponentName;)J" since="11"/> <method name="getPasswordHistoryLength(Landroid/content/ComponentName;)I" since="11"/> @@ -6656,11 +6501,9 @@ <method name="installKeyPair(Landroid/content/ComponentName;Ljava/security/PrivateKey;Ljava/security/cert/Certificate;Ljava/lang/String;)Z" since="21"/> <method name="installKeyPair(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;I)Z" since="28"/> <method name="installKeyPair(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;Z)Z" since="24"/> - <method name="installSystemUpdate(Landroid/content/ComponentName;Landroid/net/Uri;Ljava/util/concurrent/Executor;Landroid/app/admin/DevicePolicyManager$InstallSystemUpdateCallback;)V" since="29"/> <method name="isActivePasswordSufficient()Z"/> <method name="isAdminActive(Landroid/content/ComponentName;)Z"/> <method name="isAffiliatedUser()Z" since="28"/> - <method name="isAlwaysOnVpnLockdownEnabled(Landroid/content/ComponentName;)Z" since="29"/> <method name="isApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;)Z" since="21"/> <method name="isBackupServiceEnabled(Landroid/content/ComponentName;)Z" since="26"/> <method name="isCallerApplicationRestrictionsManagingPackage()Z" since="24" deprecated="26"/> @@ -6698,7 +6541,6 @@ <method name="setAccountManagementDisabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V" since="21"/> <method name="setAffiliationIds(Landroid/content/ComponentName;Ljava/util/Set;)V" since="26"/> <method name="setAlwaysOnVpnPackage(Landroid/content/ComponentName;Ljava/lang/String;Z)V" since="24"/> - <method name="setAlwaysOnVpnPackage(Landroid/content/ComponentName;Ljava/lang/String;ZLjava/util/Set;)V" since="29"/> <method name="setApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Z)Z" since="21"/> <method name="setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)V" since="21"/> <method name="setApplicationRestrictionsManagingPackage(Landroid/content/ComponentName;Ljava/lang/String;)V" since="24" deprecated="26"/> @@ -6707,15 +6549,11 @@ <method name="setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V" since="23"/> <method name="setCameraDisabled(Landroid/content/ComponentName;Z)V" since="14"/> <method name="setCertInstallerPackage(Landroid/content/ComponentName;Ljava/lang/String;)V" since="23" deprecated="26"/> - <method name="setCrossProfileCalendarPackages(Landroid/content/ComponentName;Ljava/util/Set;)V" since="29"/> <method name="setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V" since="21"/> <method name="setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V" since="24"/> - <method name="setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V" since="29"/> <method name="setDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V" since="26"/> <method name="setDeviceOwnerLockScreenInfo(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V" since="24"/> <method name="setEndUserSessionMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V" since="28"/> - <method name="setGlobalPrivateDnsModeOpportunistic(Landroid/content/ComponentName;)I" since="29"/> - <method name="setGlobalPrivateDnsModeSpecifiedHost(Landroid/content/ComponentName;Ljava/lang/String;)I" since="29"/> <method name="setGlobalSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V" since="21"/> <method name="setKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/util/List;)V" since="28"/> <method name="setKeyPairCertificate(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;Z)Z" since="28"/> @@ -6779,11 +6617,9 @@ <method name="wipeData(I)V"/> <method name="wipeData(ILjava/lang/CharSequence;)V" since="28"/> <field name="ACTION_ADD_DEVICE_ADMIN"/> - <field name="ACTION_ADMIN_POLICY_COMPLIANCE" since="29"/> <field name="ACTION_APPLICATION_DELEGATION_SCOPES_CHANGED" since="26"/> <field name="ACTION_DEVICE_ADMIN_SERVICE" since="26"/> <field name="ACTION_DEVICE_OWNER_CHANGED" since="23"/> - <field name="ACTION_GET_PROVISIONING_MODE" since="29"/> <field name="ACTION_MANAGED_PROFILE_PROVISIONED" since="23"/> <field name="ACTION_PROFILE_OWNER_CHANGED" since="28"/> <field name="ACTION_PROVISIONING_SUCCESSFUL" since="26"/> @@ -6796,11 +6632,9 @@ <field name="DELEGATION_APP_RESTRICTIONS" since="26"/> <field name="DELEGATION_BLOCK_UNINSTALL" since="26"/> <field name="DELEGATION_CERT_INSTALL" since="26"/> - <field name="DELEGATION_CERT_SELECTION" since="29"/> <field name="DELEGATION_ENABLE_SYSTEM_APP" since="26"/> <field name="DELEGATION_INSTALL_EXISTING_PACKAGE" since="28"/> <field name="DELEGATION_KEEP_UNINSTALLED_PACKAGES" since="28"/> - <field name="DELEGATION_NETWORK_LOGGING" since="29"/> <field name="DELEGATION_PACKAGE_ACCESS" since="26"/> <field name="DELEGATION_PERMISSION_GRANT" since="26"/> <field name="ENCRYPTION_STATUS_ACTIVATING" since="11"/> @@ -6812,7 +6646,6 @@ <field name="EXTRA_ADD_EXPLANATION"/> <field name="EXTRA_DELEGATION_SCOPES" since="26"/> <field name="EXTRA_DEVICE_ADMIN"/> - <field name="EXTRA_PASSWORD_COMPLEXITY" since="29"/> <field name="EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE" since="22"/> <field name="EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE" since="21"/> <field name="EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME" since="23"/> @@ -6826,34 +6659,23 @@ <field name="EXTRA_PROVISIONING_DISCLAIMER_CONTENT" since="26"/> <field name="EXTRA_PROVISIONING_DISCLAIMER_HEADER" since="26"/> <field name="EXTRA_PROVISIONING_EMAIL_ADDRESS" since="21" deprecated="26"/> - <field name="EXTRA_PROVISIONING_IMEI" since="29"/> <field name="EXTRA_PROVISIONING_KEEP_ACCOUNT_ON_MIGRATION" since="26"/> <field name="EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED" since="22"/> <field name="EXTRA_PROVISIONING_LOCALE" since="21"/> <field name="EXTRA_PROVISIONING_LOCAL_TIME" since="21"/> <field name="EXTRA_PROVISIONING_LOGO_URI" since="24"/> <field name="EXTRA_PROVISIONING_MAIN_COLOR" since="24"/> - <field name="EXTRA_PROVISIONING_MODE" since="29"/> - <field name="EXTRA_PROVISIONING_SERIAL_NUMBER" since="29"/> - <field name="EXTRA_PROVISIONING_SKIP_EDUCATION_SCREENS" since="29"/> <field name="EXTRA_PROVISIONING_SKIP_ENCRYPTION" since="23"/> <field name="EXTRA_PROVISIONING_SKIP_USER_CONSENT" since="26"/> <field name="EXTRA_PROVISIONING_TIME_ZONE" since="21"/> - <field name="EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY" since="29"/> - <field name="EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE" since="29"/> - <field name="EXTRA_PROVISIONING_WIFI_DOMAIN" since="29"/> - <field name="EXTRA_PROVISIONING_WIFI_EAP_METHOD" since="29"/> <field name="EXTRA_PROVISIONING_WIFI_HIDDEN" since="21"/> - <field name="EXTRA_PROVISIONING_WIFI_IDENTITY" since="29"/> <field name="EXTRA_PROVISIONING_WIFI_PAC_URL" since="21"/> <field name="EXTRA_PROVISIONING_WIFI_PASSWORD" since="21"/> - <field name="EXTRA_PROVISIONING_WIFI_PHASE2_AUTH" since="29"/> <field name="EXTRA_PROVISIONING_WIFI_PROXY_BYPASS" since="21"/> <field name="EXTRA_PROVISIONING_WIFI_PROXY_HOST" since="21"/> <field name="EXTRA_PROVISIONING_WIFI_PROXY_PORT" since="21"/> <field name="EXTRA_PROVISIONING_WIFI_SECURITY_TYPE" since="21"/> <field name="EXTRA_PROVISIONING_WIFI_SSID" since="21"/> - <field name="EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE" since="29"/> <field name="FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY" since="26"/> <field name="FLAG_MANAGED_CAN_ACCESS_PARENT" since="21"/> <field name="FLAG_PARENT_CAN_ACCESS_MANAGED" since="21"/> @@ -6885,10 +6707,6 @@ <field name="LOCK_TASK_FEATURE_SYSTEM_INFO" since="28"/> <field name="MAKE_USER_EPHEMERAL" since="28"/> <field name="MIME_TYPE_PROVISIONING_NFC" since="21"/> - <field name="PASSWORD_COMPLEXITY_HIGH" since="29"/> - <field name="PASSWORD_COMPLEXITY_LOW" since="29"/> - <field name="PASSWORD_COMPLEXITY_MEDIUM" since="29"/> - <field name="PASSWORD_COMPLEXITY_NONE" since="29"/> <field name="PASSWORD_QUALITY_ALPHABETIC"/> <field name="PASSWORD_QUALITY_ALPHANUMERIC"/> <field name="PASSWORD_QUALITY_BIOMETRIC_WEAK" since="14"/> @@ -6905,32 +6723,12 @@ <field name="PERMISSION_POLICY_PROMPT" since="23"/> <field name="POLICY_DISABLE_CAMERA" since="26"/> <field name="POLICY_DISABLE_SCREEN_CAPTURE" since="26"/> - <field name="PRIVATE_DNS_MODE_OFF" since="29"/> - <field name="PRIVATE_DNS_MODE_OPPORTUNISTIC" since="29"/> - <field name="PRIVATE_DNS_MODE_PROVIDER_HOSTNAME" since="29"/> - <field name="PRIVATE_DNS_MODE_UNKNOWN" since="29"/> - <field name="PRIVATE_DNS_SET_ERROR_FAILURE_SETTING" since="29"/> - <field name="PRIVATE_DNS_SET_ERROR_HOST_NOT_SERVING" since="29"/> - <field name="PRIVATE_DNS_SET_NO_ERROR" since="29"/> - <field name="PROVISIONING_MODE_FULLY_MANAGED_DEVICE" since="29"/> - <field name="PROVISIONING_MODE_MANAGED_PROFILE" since="29"/> <field name="RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT" since="23"/> <field name="RESET_PASSWORD_REQUIRE_ENTRY"/> <field name="SKIP_SETUP_WIZARD" since="24"/> <field name="WIPE_EUICC" since="28"/> <field name="WIPE_EXTERNAL_STORAGE" since="9"/> <field name="WIPE_RESET_PROTECTION_DATA" since="22"/> - <field name="WIPE_SILENTLY" since="29"/> - </class> - <class name="android/app/admin/DevicePolicyManager$InstallSystemUpdateCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onInstallUpdateError(ILjava/lang/String;)V"/> - <field name="UPDATE_ERROR_BATTERY_LOW"/> - <field name="UPDATE_ERROR_FILE_NOT_FOUND"/> - <field name="UPDATE_ERROR_INCORRECT_OS_VERSION"/> - <field name="UPDATE_ERROR_UNKNOWN"/> - <field name="UPDATE_ERROR_UPDATE_FILE_INVALID"/> </class> <class name="android/app/admin/DevicePolicyManager$OnClearApplicationUserDataListener" since="28"> <extends name="java/lang/Object"/> @@ -6938,6 +6736,8 @@ </class> <class name="android/app/admin/DnsEvent" since="26"> <extends name="android/app/admin/NetworkEvent"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getHostname()Ljava/lang/String;"/> <method name="getInetAddresses()Ljava/util/List;"/> <method name="getTotalResolvedAddressCount()I"/> @@ -6952,6 +6752,7 @@ <class name="android/app/admin/NetworkEvent" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getId()J" since="28"/> <method name="getPackageName()Ljava/lang/String;"/> <method name="getTimestamp()J"/> @@ -7000,6 +6801,8 @@ <class name="android/app/admin/SecurityLog$SecurityEvent" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([B)V" since="29"/> <method name="getData()Ljava/lang/Object;"/> <method name="getId()J" since="28"/> <method name="getLogLevel()I" since="28"/> @@ -7010,6 +6813,8 @@ <class name="android/app/admin/SystemUpdateInfo" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getReceivedTime()J"/> <method name="getSecurityPatchState()I"/> <field name="CREATOR"/> @@ -7020,6 +6825,7 @@ <class name="android/app/admin/SystemUpdatePolicy" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="createAutomaticInstallPolicy()Landroid/app/admin/SystemUpdatePolicy;"/> <method name="createPostponeInstallPolicy()Landroid/app/admin/SystemUpdatePolicy;"/> <method name="createWindowedInstallPolicy(II)Landroid/app/admin/SystemUpdatePolicy;"/> @@ -7036,6 +6842,8 @@ <class name="android/app/admin/SystemUpdatePolicy$ValidationFailedException" since="28"> <extends name="java/lang/IllegalArgumentException"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;)V" since="29"/> <method name="getErrorCode()I"/> <field name="CREATOR"/> <field name="ERROR_COMBINED_FREEZE_PERIOD_TOO_CLOSE"/> @@ -7076,6 +6884,7 @@ </class> <class name="android/app/assist/AssistStructure$ViewNode" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAlpha()F"/> <method name="getAutofillHints()[Ljava/lang/String;" since="26"/> <method name="getAutofillId()Landroid/view/autofill/AutofillId;" since="26"/> @@ -7141,6 +6950,7 @@ </class> <class name="android/app/assist/AssistStructure$WindowNode" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDisplayId()I"/> <method name="getHeight()I"/> <method name="getLeft()I"/> @@ -7174,6 +6984,8 @@ </class> <class name="android/app/backup/BackupDataInput" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/io/FileDescriptor;)V" since="29"/> <method name="getDataSize()I"/> <method name="getKey()Ljava/lang/String;"/> <method name="readEntityData([BII)I"/> @@ -7182,11 +6994,15 @@ </class> <class name="android/app/backup/BackupDataInputStream" since="8"> <extends name="java/io/InputStream"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/app/backup/BackupDataInput;)V" since="29"/> <method name="getKey()Ljava/lang/String;"/> <method name="size()I"/> </class> <class name="android/app/backup/BackupDataOutput" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/io/FileDescriptor;)V" since="29"/> <method name="getQuota()J" since="26"/> <method name="getTransportFlags()I" since="28"/> <method name="writeEntityData([BI)I"/> @@ -7203,16 +7019,23 @@ <method name="<init>(Landroid/content/Context;)V"/> <method name="dataChanged()V"/> <method name="dataChanged(Ljava/lang/String;)V"/> - <method name="getUserForAncestralSerialNumber(J)Landroid/os/UserHandle;" since="29"/> <method name="requestRestore(Landroid/app/backup/RestoreObserver;)I" deprecated="28"/> </class> <class name="android/app/backup/FileBackupHelper" since="8"> - <extends name="java/lang/Object"/> + <extends name="android/app/backup/FileBackupHelperBase" removed="29"/> + <extends name="java/lang/Object" since="29"/> <implements name="android/app/backup/BackupHelper"/> <method name="<init>(Landroid/content/Context;[Ljava/lang/String;)V"/> </class> + <class name="android/app/backup/FileBackupHelperBase" since="8" removed="29"> + <extends name="java/lang/Object"/> + <method name="<init>()V"/> + <method name="writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V"/> + </class> <class name="android/app/backup/FullBackupDataOutput" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> <method name="getQuota()J" since="26"/> <method name="getTransportFlags()I" since="28"/> </class> @@ -7224,13 +7047,16 @@ <method name="restoreStarting(I)V"/> </class> <class name="android/app/backup/SharedPreferencesBackupHelper" since="8"> - <extends name="java/lang/Object"/> + <extends name="android/app/backup/FileBackupHelperBase" removed="29"/> + <extends name="java/lang/Object" since="29"/> <implements name="android/app/backup/BackupHelper"/> <method name="<init>(Landroid/content/Context;[Ljava/lang/String;)V"/> </class> <class name="android/app/job/JobInfo" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getBackoffPolicy()I"/> <method name="getClipData()Landroid/content/ClipData;" since="26"/> <method name="getClipGrantFlags()I" since="26"/> @@ -7311,6 +7137,8 @@ <class name="android/app/job/JobParameters" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="completeWork(Landroid/app/job/JobWorkItem;)V" since="26"/> <method name="dequeueWork()Landroid/app/job/JobWorkItem;" since="26"/> <method name="getClipData()Landroid/content/ClipData;" since="26"/> @@ -7363,20 +7191,6 @@ <method name="getIntent()Landroid/content/Intent;"/> <field name="CREATOR"/> </class> - <class name="android/app/role/RoleManager" since="29"> - <extends name="java/lang/Object"/> - <method name="createRequestRoleIntent(Ljava/lang/String;)Landroid/content/Intent;"/> - <method name="isRoleAvailable(Ljava/lang/String;)Z"/> - <method name="isRoleHeld(Ljava/lang/String;)Z"/> - <field name="ROLE_ASSISTANT"/> - <field name="ROLE_BROWSER"/> - <field name="ROLE_CALL_REDIRECTION"/> - <field name="ROLE_CALL_SCREENING"/> - <field name="ROLE_DIALER"/> - <field name="ROLE_EMERGENCY"/> - <field name="ROLE_HOME"/> - <field name="ROLE_SMS"/> - </class> <class name="android/app/slice/Slice" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -7437,6 +7251,8 @@ <class name="android/app/slice/SliceItem" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getAction()Landroid/app/PendingIntent;"/> <method name="getBundle()Landroid/os/Bundle;"/> <method name="getFormat()Ljava/lang/String;"/> @@ -7461,6 +7277,7 @@ </class> <class name="android/app/slice/SliceManager" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="bindSlice(Landroid/content/Intent;Ljava/util/Set;)Landroid/app/slice/Slice;"/> <method name="bindSlice(Landroid/net/Uri;Ljava/util/Set;)Landroid/app/slice/Slice;"/> <method name="checkSlicePermission(Landroid/net/Uri;II)I"/> @@ -7531,6 +7348,7 @@ <class name="android/app/usage/ExternalStorageStats" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getAppBytes()J"/> <method name="getAudioBytes()J"/> <method name="getImageBytes()J"/> @@ -7541,6 +7359,7 @@ <class name="android/app/usage/NetworkStats" since="23"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="getNextBucket(Landroid/app/usage/NetworkStats$Bucket;)Z"/> <method name="hasNextBucket()Z"/> </class> @@ -7578,6 +7397,7 @@ </class> <class name="android/app/usage/NetworkStatsManager" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="queryDetails(ILjava/lang/String;JJ)Landroid/app/usage/NetworkStats;"/> <method name="queryDetailsForUid(ILjava/lang/String;JJI)Landroid/app/usage/NetworkStats;"/> <method name="queryDetailsForUidTag(ILjava/lang/String;JJII)Landroid/app/usage/NetworkStats;" since="24"/> @@ -7597,6 +7417,7 @@ <class name="android/app/usage/StorageStats" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getAppBytes()J"/> <method name="getCacheBytes()J"/> <method name="getDataBytes()J"/> @@ -7604,6 +7425,7 @@ </class> <class name="android/app/usage/StorageStatsManager" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getFreeBytes(Ljava/util/UUID;)J"/> <method name="getTotalBytes(Ljava/util/UUID;)J"/> <method name="queryExternalStatsForUser(Ljava/util/UUID;Landroid/os/UserHandle;)Landroid/app/usage/ExternalStorageStats;"/> @@ -7614,6 +7436,7 @@ <class name="android/app/usage/UsageEvents" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getNextEvent(Landroid/app/usage/UsageEvents$Event;)Z"/> <method name="hasNextEvent()Z"/> <field name="CREATOR"/> @@ -7628,18 +7451,11 @@ <method name="getPackageName()Ljava/lang/String;"/> <method name="getShortcutId()Ljava/lang/String;" since="25"/> <method name="getTimeStamp()J"/> - <field name="ACTIVITY_PAUSED" since="29"/> - <field name="ACTIVITY_RESUMED" since="29"/> - <field name="ACTIVITY_STOPPED" since="29"/> <field name="CONFIGURATION_CHANGE"/> - <field name="DEVICE_SHUTDOWN" since="29"/> - <field name="DEVICE_STARTUP" since="29"/> - <field name="FOREGROUND_SERVICE_START" since="29"/> - <field name="FOREGROUND_SERVICE_STOP" since="29"/> <field name="KEYGUARD_HIDDEN" since="28"/> <field name="KEYGUARD_SHOWN" since="28"/> - <field name="MOVE_TO_BACKGROUND" deprecated="29"/> - <field name="MOVE_TO_FOREGROUND" deprecated="29"/> + <field name="MOVE_TO_BACKGROUND"/> + <field name="MOVE_TO_FOREGROUND"/> <field name="NONE"/> <field name="SCREEN_INTERACTIVE" since="28"/> <field name="SCREEN_NON_INTERACTIVE" since="28"/> @@ -7653,18 +7469,15 @@ <method name="<init>(Landroid/app/usage/UsageStats;)V"/> <method name="add(Landroid/app/usage/UsageStats;)V"/> <method name="getFirstTimeStamp()J"/> - <method name="getLastTimeForegroundServiceUsed()J" since="29"/> <method name="getLastTimeStamp()J"/> <method name="getLastTimeUsed()J"/> - <method name="getLastTimeVisible()J" since="29"/> <method name="getPackageName()Ljava/lang/String;"/> - <method name="getTotalTimeForegroundServiceUsed()J" since="29"/> <method name="getTotalTimeInForeground()J"/> - <method name="getTotalTimeVisible()J" since="29"/> <field name="CREATOR"/> </class> <class name="android/app/usage/UsageStatsManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAppStandbyBucket()I" since="28"/> <method name="isAppInactive(Ljava/lang/String;)Z" since="23"/> <method name="queryAndAggregateUsageStats(JJ)Ljava/util/Map;"/> @@ -7712,13 +7525,13 @@ <method name="prepareView(Landroid/view/View;)V"/> <method name="setAppWidget(ILandroid/appwidget/AppWidgetProviderInfo;)V"/> <method name="setExecutor(Ljava/util/concurrent/Executor;)V" since="26"/> - <method name="setOnLightBackground(Z)V" since="29"/> <method name="updateAppWidget(Landroid/widget/RemoteViews;)V"/> <method name="updateAppWidgetOptions(Landroid/os/Bundle;)V" since="16"/> <method name="updateAppWidgetSize(Landroid/os/Bundle;IIII)V" since="16"/> </class> <class name="android/appwidget/AppWidgetManager" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="bindAppWidgetId(ILandroid/content/ComponentName;)V" removed="16"/> <method name="bindAppWidgetIdIfAllowed(ILandroid/content/ComponentName;)Z" since="16"/> <method name="bindAppWidgetIdIfAllowed(ILandroid/content/ComponentName;Landroid/os/Bundle;)Z" since="17"/> @@ -7819,6 +7632,8 @@ <class name="android/bluetooth/BluetoothA2dp" since="11"> <extends name="java/lang/Object"/> <implements name="android/bluetooth/BluetoothProfile"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V" since="29"/> <method name="isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z"/> <field name="ACTION_CONNECTION_STATE_CHANGED"/> <field name="ACTION_PLAYING_STATE_CHANGED"/> @@ -7827,6 +7642,7 @@ </class> <class name="android/bluetooth/BluetoothAdapter" since="5"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancelDiscovery()Z"/> <method name="checkBluetoothAddress(Ljava/lang/String;)Z"/> <method name="closeProfileProxy(ILandroid/bluetooth/BluetoothProfile;)V" since="11"/> @@ -7854,9 +7670,7 @@ <method name="isMultipleAdvertisementSupported()Z" since="21"/> <method name="isOffloadedFilteringSupported()Z" since="21"/> <method name="isOffloadedScanBatchingSupported()Z" since="21"/> - <method name="listenUsingInsecureL2capChannel()Landroid/bluetooth/BluetoothServerSocket;" since="29"/> <method name="listenUsingInsecureRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;" since="10"/> - <method name="listenUsingL2capChannel()Landroid/bluetooth/BluetoothServerSocket;" since="29"/> <method name="listenUsingRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;"/> <method name="setName(Ljava/lang/String;)Z"/> <method name="startDiscovery()Z"/> @@ -7898,6 +7712,7 @@ </class> <class name="android/bluetooth/BluetoothAssignedNumbers" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="AAMP_OF_AMERICA" since="19"/> <field name="ACCEL_SEMICONDUCTOR"/> <field name="ACE_SENSOR" since="19"/> @@ -8129,6 +7944,8 @@ <class name="android/bluetooth/BluetoothClass" since="5"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="getDeviceClass()I"/> <method name="getMajorDeviceClass()I"/> <method name="hasService(I)Z"/> @@ -8219,14 +8036,14 @@ <class name="android/bluetooth/BluetoothDevice" since="5"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;)Landroid/bluetooth/BluetoothGatt;" since="18"/> <method name="connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;I)Landroid/bluetooth/BluetoothGatt;" since="23"/> <method name="connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;II)Landroid/bluetooth/BluetoothGatt;" since="26"/> <method name="connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;IILandroid/os/Handler;)Landroid/bluetooth/BluetoothGatt;" since="26"/> <method name="createBond()Z" since="19"/> - <method name="createInsecureL2capChannel(I)Landroid/bluetooth/BluetoothSocket;" since="29"/> <method name="createInsecureRfcommSocketToServiceRecord(Ljava/util/UUID;)Landroid/bluetooth/BluetoothSocket;" since="10"/> - <method name="createL2capChannel(I)Landroid/bluetooth/BluetoothSocket;" since="29"/> <method name="createRfcommSocketToServiceRecord(Ljava/util/UUID;)Landroid/bluetooth/BluetoothSocket;"/> <method name="fetchUuidsWithSdp()Z" since="15"/> <method name="getAddress()Ljava/lang/String;"/> @@ -8282,6 +8099,7 @@ <class name="android/bluetooth/BluetoothGatt" since="18"> <extends name="java/lang/Object"/> <implements name="android/bluetooth/BluetoothProfile"/> + <method name="<init>()V"/> <method name="abortReliableWrite()V" since="19"/> <method name="abortReliableWrite(Landroid/bluetooth/BluetoothDevice;)V" deprecated="19"/> <method name="beginReliableWrite()Z"/> @@ -8410,6 +8228,7 @@ <class name="android/bluetooth/BluetoothGattServer" since="18"> <extends name="java/lang/Object"/> <implements name="android/bluetooth/BluetoothProfile"/> + <method name="<init>()V"/> <method name="addService(Landroid/bluetooth/BluetoothGattService;)Z"/> <method name="cancelConnection(Landroid/bluetooth/BluetoothDevice;)V"/> <method name="clearServices()V"/> @@ -8459,6 +8278,8 @@ <class name="android/bluetooth/BluetoothHeadset" since="11"> <extends name="java/lang/Object"/> <implements name="android/bluetooth/BluetoothProfile"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V" since="29"/> <method name="isAudioConnected(Landroid/bluetooth/BluetoothDevice;)Z"/> <method name="sendVendorSpecificResultCode(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;Ljava/lang/String;)Z" since="19"/> <method name="startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z"/> @@ -8480,49 +8301,50 @@ <field name="VENDOR_RESULT_CODE_COMMAND_ANDROID" since="19"/> <field name="VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY"/> </class> - <class name="android/bluetooth/BluetoothHealth" since="14" deprecated="29"> + <class name="android/bluetooth/BluetoothHealth" since="14"> <extends name="java/lang/Object"/> <implements name="android/bluetooth/BluetoothProfile"/> - <method name="connectChannelToSource(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z" deprecated="29"/> - <method name="disconnectChannel(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z" deprecated="29"/> - <method name="getMainChannelFd(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Landroid/os/ParcelFileDescriptor;" deprecated="29"/> - <method name="registerSinkAppConfiguration(Ljava/lang/String;ILandroid/bluetooth/BluetoothHealthCallback;)Z" deprecated="29"/> - <method name="unregisterAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z" deprecated="29"/> - <field name="APP_CONFIG_REGISTRATION_FAILURE" deprecated="29"/> - <field name="APP_CONFIG_REGISTRATION_SUCCESS" deprecated="29"/> - <field name="APP_CONFIG_UNREGISTRATION_FAILURE" deprecated="29"/> - <field name="APP_CONFIG_UNREGISTRATION_SUCCESS" deprecated="29"/> - <field name="CHANNEL_TYPE_RELIABLE" deprecated="29"/> - <field name="CHANNEL_TYPE_STREAMING" deprecated="29"/> - <field name="SINK_ROLE" deprecated="29"/> - <field name="SOURCE_ROLE" deprecated="29"/> - <field name="STATE_CHANNEL_CONNECTED" deprecated="29"/> - <field name="STATE_CHANNEL_CONNECTING" deprecated="29"/> - <field name="STATE_CHANNEL_DISCONNECTED" deprecated="29"/> - <field name="STATE_CHANNEL_DISCONNECTING" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V" since="29"/> + <method name="connectChannelToSource(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z"/> + <method name="disconnectChannel(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z"/> + <method name="getMainChannelFd(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Landroid/os/ParcelFileDescriptor;"/> + <method name="registerSinkAppConfiguration(Ljava/lang/String;ILandroid/bluetooth/BluetoothHealthCallback;)Z"/> + <method name="unregisterAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z"/> + <field name="APP_CONFIG_REGISTRATION_FAILURE"/> + <field name="APP_CONFIG_REGISTRATION_SUCCESS"/> + <field name="APP_CONFIG_UNREGISTRATION_FAILURE"/> + <field name="APP_CONFIG_UNREGISTRATION_SUCCESS"/> + <field name="CHANNEL_TYPE_RELIABLE"/> + <field name="CHANNEL_TYPE_STREAMING"/> + <field name="SINK_ROLE"/> + <field name="SOURCE_ROLE"/> + <field name="STATE_CHANNEL_CONNECTED"/> + <field name="STATE_CHANNEL_CONNECTING"/> + <field name="STATE_CHANNEL_DISCONNECTED"/> + <field name="STATE_CHANNEL_DISCONNECTING"/> </class> - <class name="android/bluetooth/BluetoothHealthAppConfiguration" since="14" deprecated="29"> + <class name="android/bluetooth/BluetoothHealthAppConfiguration" since="14"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="getDataType()I" deprecated="29"/> - <method name="getName()Ljava/lang/String;" deprecated="29"/> - <method name="getRole()I" deprecated="29"/> - <field name="CREATOR" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;I)V" since="29"/> + <method name="getDataType()I"/> + <method name="getName()Ljava/lang/String;"/> + <method name="getRole()I"/> + <field name="CREATOR"/> </class> - <class name="android/bluetooth/BluetoothHealthCallback" since="14" deprecated="29"> + <class name="android/bluetooth/BluetoothHealthCallback" since="14"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V" deprecated="29"/> - <method name="onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V" deprecated="29"/> - </class> - <class name="android/bluetooth/BluetoothHearingAid" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/bluetooth/BluetoothProfile"/> - <field name="ACTION_CONNECTION_STATE_CHANGED"/> + <method name="<init>()V"/> + <method name="onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V"/> + <method name="onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V"/> </class> <class name="android/bluetooth/BluetoothHidDevice" since="28"> <extends name="java/lang/Object"/> <implements name="android/bluetooth/BluetoothProfile"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V" since="29"/> <method name="connect(Landroid/bluetooth/BluetoothDevice;)Z"/> <method name="disconnect(Landroid/bluetooth/BluetoothDevice;)Z"/> <method name="registerApp(Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;Ljava/util/concurrent/Executor;Landroid/bluetooth/BluetoothHidDevice$Callback;)Z"/> @@ -8594,6 +8416,8 @@ </class> <class name="android/bluetooth/BluetoothManager" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="getAdapter()Landroid/bluetooth/BluetoothAdapter;"/> <method name="getConnectedDevices(I)Ljava/util/List;"/> <method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;I)I"/> @@ -8611,8 +8435,7 @@ <field name="GATT" since="18"/> <field name="GATT_SERVER" since="18"/> <field name="HEADSET"/> - <field name="HEALTH" since="14" deprecated="29"/> - <field name="HEARING_AID" since="29"/> + <field name="HEALTH" since="14"/> <field name="HID_DEVICE" since="28"/> <field name="SAP" since="23"/> <field name="STATE_CONNECTED"/> @@ -8628,13 +8451,16 @@ <class name="android/bluetooth/BluetoothServerSocket" since="5"> <extends name="java/lang/Object"/> <implements name="java/io/Closeable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IZZI)V" since="29"/> <method name="accept()Landroid/bluetooth/BluetoothSocket;"/> <method name="accept(I)Landroid/bluetooth/BluetoothSocket;"/> - <method name="getPsm()I" since="29"/> </class> <class name="android/bluetooth/BluetoothSocket" since="5"> <extends name="java/lang/Object"/> <implements name="java/io/Closeable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/bluetooth/BluetoothSocket;)V" since="29"/> <method name="connect()V"/> <method name="getConnectionType()I" since="23"/> <method name="getInputStream()Ljava/io/InputStream;"/> @@ -8661,6 +8487,8 @@ <class name="android/bluetooth/le/AdvertiseData" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;ZZ)V" since="29"/> <method name="getIncludeDeviceName()Z"/> <method name="getIncludeTxPowerLevel()Z"/> <method name="getManufacturerSpecificData()Landroid/util/SparseArray;"/> @@ -8681,6 +8509,8 @@ <class name="android/bluetooth/le/AdvertiseSettings" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getMode()I"/> <method name="getTimeout()I"/> <method name="getTxPowerLevel()I"/> @@ -8705,6 +8535,7 @@ </class> <class name="android/bluetooth/le/AdvertisingSet" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="enableAdvertising(ZII)V"/> <method name="setAdvertisingData(Landroid/bluetooth/le/AdvertiseData;)V"/> <method name="setAdvertisingParameters(Landroid/bluetooth/le/AdvertisingSetParameters;)V"/> @@ -8735,6 +8566,8 @@ <class name="android/bluetooth/le/AdvertisingSetParameters" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getInterval()I"/> <method name="getPrimaryPhy()I"/> <method name="getSecondaryPhy()I"/> @@ -8773,6 +8606,7 @@ </class> <class name="android/bluetooth/le/BluetoothLeAdvertiser" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="startAdvertising(Landroid/bluetooth/le/AdvertiseSettings;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/AdvertiseCallback;)V"/> <method name="startAdvertising(Landroid/bluetooth/le/AdvertiseSettings;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/AdvertiseCallback;)V"/> <method name="startAdvertisingSet(Landroid/bluetooth/le/AdvertisingSetParameters;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/PeriodicAdvertisingParameters;Landroid/bluetooth/le/AdvertiseData;IILandroid/bluetooth/le/AdvertisingSetCallback;)V" since="26"/> @@ -8784,6 +8618,7 @@ </class> <class name="android/bluetooth/le/BluetoothLeScanner" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="flushPendingScanResults(Landroid/bluetooth/le/ScanCallback;)V"/> <method name="startScan(Landroid/bluetooth/le/ScanCallback;)V"/> <method name="startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/app/PendingIntent;)I" since="26"/> @@ -8797,6 +8632,8 @@ <class name="android/bluetooth/le/PeriodicAdvertisingParameters" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getIncludeTxPower()Z"/> <method name="getInterval()I"/> <field name="CREATOR"/> @@ -8822,6 +8659,8 @@ <class name="android/bluetooth/le/ScanFilter" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;[B[BI[B[B)V" since="29"/> <method name="getDeviceAddress()Ljava/lang/String;"/> <method name="getDeviceName()Ljava/lang/String;"/> <method name="getManufacturerData()[B"/> @@ -8830,8 +8669,6 @@ <method name="getServiceData()[B"/> <method name="getServiceDataMask()[B"/> <method name="getServiceDataUuid()Landroid/os/ParcelUuid;"/> - <method name="getServiceSolicitationUuid()Landroid/os/ParcelUuid;" since="29"/> - <method name="getServiceSolicitationUuidMask()Landroid/os/ParcelUuid;" since="29"/> <method name="getServiceUuid()Landroid/os/ParcelUuid;"/> <method name="getServiceUuidMask()Landroid/os/ParcelUuid;"/> <method name="matches(Landroid/bluetooth/le/ScanResult;)Z"/> @@ -8847,13 +8684,13 @@ <method name="setManufacturerData(I[B[B)Landroid/bluetooth/le/ScanFilter$Builder;"/> <method name="setServiceData(Landroid/os/ParcelUuid;[B)Landroid/bluetooth/le/ScanFilter$Builder;"/> <method name="setServiceData(Landroid/os/ParcelUuid;[B[B)Landroid/bluetooth/le/ScanFilter$Builder;"/> - <method name="setServiceSolicitationUuid(Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;" since="29"/> - <method name="setServiceSolicitationUuid(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;" since="29"/> <method name="setServiceUuid(Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;"/> <method name="setServiceUuid(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;"/> </class> <class name="android/bluetooth/le/ScanRecord" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V" since="29"/> <method name="getAdvertiseFlags()I"/> <method name="getBytes()[B"/> <method name="getDeviceName()Ljava/lang/String;"/> @@ -8861,7 +8698,6 @@ <method name="getManufacturerSpecificData(I)[B"/> <method name="getServiceData()Ljava/util/Map;"/> <method name="getServiceData(Landroid/os/ParcelUuid;)[B"/> - <method name="getServiceSolicitationUuids()Ljava/util/List;" since="29"/> <method name="getServiceUuids()Ljava/util/List;"/> <method name="getTxPowerLevel()I"/> </class> @@ -8893,6 +8729,8 @@ <class name="android/bluetooth/le/ScanSettings" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getCallbackType()I"/> <method name="getLegacy()Z" since="26"/> <method name="getPhy()I" since="26"/> @@ -8929,6 +8767,8 @@ <class name="android/companion/AssociationRequest" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/companion/AssociationRequest$Builder" since="26"> @@ -8936,13 +8776,15 @@ <method name="<init>()V"/> <method name="addDeviceFilter(Landroid/companion/DeviceFilter;)Landroid/companion/AssociationRequest$Builder;"/> <method name="build()Landroid/companion/AssociationRequest;"/> - <method name="checkNotUsed()V" since="28" removed="29"/> - <method name="markUsed()V" since="28" removed="29"/> + <method name="checkNotUsed()V" since="29"/> + <method name="markUsed()V" since="29"/> <method name="setSingleDevice(Z)Landroid/companion/AssociationRequest$Builder;"/> </class> <class name="android/companion/BluetoothDeviceFilter" since="26"> <extends name="java/lang/Object"/> <implements name="android/companion/DeviceFilter"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/companion/BluetoothDeviceFilter$Builder" since="26"> @@ -8950,14 +8792,16 @@ <method name="<init>()V"/> <method name="addServiceUuid(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;)Landroid/companion/BluetoothDeviceFilter$Builder;"/> <method name="build()Landroid/companion/BluetoothDeviceFilter;"/> - <method name="checkNotUsed()V" since="28" removed="29"/> - <method name="markUsed()V" since="28" removed="29"/> + <method name="checkNotUsed()V" since="29"/> + <method name="markUsed()V" since="29"/> <method name="setAddress(Ljava/lang/String;)Landroid/companion/BluetoothDeviceFilter$Builder;"/> <method name="setNamePattern(Ljava/util/regex/Pattern;)Landroid/companion/BluetoothDeviceFilter$Builder;"/> </class> <class name="android/companion/BluetoothLeDeviceFilter" since="26"> <extends name="java/lang/Object"/> <implements name="android/companion/DeviceFilter"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/regex/Pattern;Landroid/bluetooth/le/ScanFilter;[B[BLjava/lang/String;Ljava/lang/String;IIIIZ)V" since="29"/> <method name="getRenamePrefixLengthLimit()I"/> <field name="CREATOR"/> </class> @@ -8965,8 +8809,8 @@ <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="build()Landroid/companion/BluetoothLeDeviceFilter;"/> - <method name="checkNotUsed()V" since="28" removed="29"/> - <method name="markUsed()V" since="28" removed="29"/> + <method name="checkNotUsed()V" since="29"/> + <method name="markUsed()V" since="29"/> <method name="setNamePattern(Ljava/util/regex/Pattern;)Landroid/companion/BluetoothLeDeviceFilter$Builder;"/> <method name="setRawDataFilter([B[B)Landroid/companion/BluetoothLeDeviceFilter$Builder;"/> <method name="setRenameFromBytes(Ljava/lang/String;Ljava/lang/String;IILjava/nio/ByteOrder;)Landroid/companion/BluetoothLeDeviceFilter$Builder;"/> @@ -8975,6 +8819,7 @@ </class> <class name="android/companion/CompanionDeviceManager" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="associate(Landroid/companion/AssociationRequest;Landroid/companion/CompanionDeviceManager$Callback;Landroid/os/Handler;)V"/> <method name="disassociate(Ljava/lang/String;)V"/> <method name="getAssociations()Ljava/util/List;"/> @@ -8995,14 +8840,16 @@ <class name="android/companion/WifiDeviceFilter" since="26"> <extends name="java/lang/Object"/> <implements name="android/companion/DeviceFilter"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/regex/Pattern;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/companion/WifiDeviceFilter$Builder" since="26"> <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="build()Landroid/companion/WifiDeviceFilter;"/> - <method name="checkNotUsed()V" since="28" removed="29"/> - <method name="markUsed()V" since="28" removed="29"/> + <method name="checkNotUsed()V" since="29"/> + <method name="markUsed()V" since="29"/> <method name="setNamePattern(Ljava/util/regex/Pattern;)Landroid/companion/WifiDeviceFilter$Builder;"/> </class> <class name="android/content/AbstractThreadedSyncAdapter" since="5"> @@ -9016,7 +8863,7 @@ <method name="onSyncCanceled()V" since="8"/> <method name="onSyncCanceled(Ljava/lang/Thread;)V" since="11"/> <method name="onUnsyncableAccount()Z" since="28"/> - <field name="LOG_SYNC_DETAILS" deprecated="15"/> + <field name="LOG_SYNC_DETAILS" deprecated="16"/> </class> <class name="android/content/ActivityNotFoundException" since="1"> <extends name="java/lang/RuntimeException"/> @@ -9056,14 +8903,14 @@ </class> <class name="android/content/AsyncTaskLoader" since="11" deprecated="28"> <extends name="android/content/Loader"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> <method name="cancelLoad()Z" removed="16"/> - <method name="cancelLoadInBackground()V" since="16" deprecated="29"/> - <method name="isLoadInBackgroundCanceled()Z" since="16" deprecated="29"/> - <method name="loadInBackground()Ljava/lang/Object;" deprecated="29"/> - <method name="onCanceled(Ljava/lang/Object;)V" deprecated="29"/> - <method name="onLoadInBackground()Ljava/lang/Object;" deprecated="29"/> - <method name="setUpdateThrottle(J)V" deprecated="29"/> + <method name="cancelLoadInBackground()V" since="16"/> + <method name="isLoadInBackgroundCanceled()Z" since="16"/> + <method name="loadInBackground()Ljava/lang/Object;"/> + <method name="onCanceled(Ljava/lang/Object;)V"/> + <method name="onLoadInBackground()Ljava/lang/Object;"/> + <method name="setUpdateThrottle(J)V"/> </class> <class name="android/content/BroadcastReceiver" since="1"> <extends name="java/lang/Object"/> @@ -9089,6 +8936,8 @@ </class> <class name="android/content/BroadcastReceiver$PendingResult" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V" since="29"/> <method name="abortBroadcast()V"/> <method name="clearAbortBroadcast()V"/> <method name="finish()V"/> @@ -9157,6 +9006,7 @@ </class> <class name="android/content/ClipboardManager" since="11"> <extends name="android/text/ClipboardManager"/> + <method name="<init>()V"/> <method name="addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V"/> <method name="clearPrimaryClip()V" since="28"/> <method name="getPrimaryClip()Landroid/content/ClipData;"/> @@ -9215,14 +9065,11 @@ <implements name="android/content/ComponentCallbacks" removed="14"/> <implements name="android/content/ComponentCallbacks2" since="14"/> <method name="<init>()V"/> - <method name="applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="29"/> <method name="applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="5"/> <method name="attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V"/> <method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I"/> <method name="call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="11"/> - <method name="call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="29"/> <method name="canonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19"/> - <method name="clearCallingIdentity()Landroid/content/ContentProvider$CallingIdentity;" since="29"/> <method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I"/> <method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="18"/> <method name="getCallingPackage()Ljava/lang/String;" since="19"/> @@ -9247,7 +9094,6 @@ <method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;"/> <method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16"/> <method name="refresh(Landroid/net/Uri;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Z" since="26"/> - <method name="restoreCallingIdentity(Landroid/content/ContentProvider$CallingIdentity;)V" since="29"/> <method name="setPathPermissions([Landroid/content/pm/PathPermission;)V" since="4"/> <method name="setReadPermission(Ljava/lang/String;)V"/> <method name="setWritePermission(Ljava/lang/String;)V"/> @@ -9255,9 +9101,6 @@ <method name="uncanonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19"/> <method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I"/> </class> - <class name="android/content/ContentProvider$CallingIdentity" since="29"> - <extends name="java/lang/Object"/> - </class> <class name="android/content/ContentProvider$PipeDataWriter" since="11"> <extends name="java/lang/Object"/> <method name="writeDataToPipe(Landroid/os/ParcelFileDescriptor;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/Object;)V"/> @@ -9265,11 +9108,10 @@ <class name="android/content/ContentProviderClient" since="5"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable" since="24"/> - <method name="applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="29"/> + <method name="<init>()V"/> <method name="applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;"/> <method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I"/> <method name="call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="17"/> - <method name="call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="29"/> <method name="canonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19"/> <method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I"/> <method name="getLocalContentProvider()Landroid/content/ContentProvider;"/> @@ -9280,7 +9122,6 @@ <method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19"/> <method name="openFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;"/> <method name="openFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" since="19"/> - <method name="openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="29"/> <method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11"/> <method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19"/> <method name="query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="26"/> @@ -9294,6 +9135,8 @@ <class name="android/content/ContentProviderOperation" since="5"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/ContentProviderOperation$Builder;)V" since="29"/> <method name="apply(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;"/> <method name="getUri()Landroid/net/Uri;"/> <method name="isAssertQuery()Z" since="23"/> @@ -9313,6 +9156,8 @@ </class> <class name="android/content/ContentProviderOperation$Builder" since="5"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/net/Uri;)V" since="29"/> <method name="build()Landroid/content/ContentProviderOperation;"/> <method name="withExpectedCount(I)Landroid/content/ContentProviderOperation$Builder;"/> <method name="withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder;"/> @@ -9354,13 +9199,12 @@ <method name="applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="5"/> <method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I"/> <method name="call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="11"/> - <method name="call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="29"/> <method name="cancelSync(Landroid/accounts/Account;Ljava/lang/String;)V" since="5"/> <method name="cancelSync(Landroid/content/SyncRequest;)V" since="21"/> - <method name="cancelSync(Landroid/net/Uri;)V" deprecated="15"/> + <method name="cancelSync(Landroid/net/Uri;)V" deprecated="16"/> <method name="canonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19"/> <method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I"/> - <method name="getCurrentSync()Landroid/content/SyncInfo;" since="8" deprecated="15"/> + <method name="getCurrentSync()Landroid/content/SyncInfo;" since="8" deprecated="16"/> <method name="getCurrentSyncs()Ljava/util/List;" since="11"/> <method name="getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I" since="5"/> <method name="getMasterSyncAutomatically()Z" since="5"/> @@ -9371,24 +9215,19 @@ <method name="getSyncAdapterTypes()[Landroid/content/SyncAdapterType;" since="5"/> <method name="getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5"/> <method name="getType(Landroid/net/Uri;)Ljava/lang/String;"/> - <method name="getTypeInfo(Ljava/lang/String;)Landroid/content/ContentResolver$MimeTypeInfo;" since="29"/> <method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;"/> <method name="isSyncActive(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5"/> <method name="isSyncPending(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5"/> - <method name="loadThumbnail(Landroid/net/Uri;Landroid/util/Size;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;" since="29"/> <method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;)V"/> <method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;I)V" since="24"/> <method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;Z)V"/> - <method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="29"/> <method name="openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" since="3"/> <method name="openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19"/> - <method name="openFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" since="29"/> <method name="openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;"/> <method name="openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" since="19"/> <method name="openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;"/> <method name="openOutputStream(Landroid/net/Uri;)Ljava/io/OutputStream;"/> <method name="openOutputStream(Landroid/net/Uri;Ljava/lang/String;)Ljava/io/OutputStream;" since="3"/> - <method name="openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="29"/> <method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11"/> <method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19"/> <method name="query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="26"/> @@ -9404,14 +9243,12 @@ <method name="setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V" since="5"/> <method name="setMasterSyncAutomatically(Z)V" since="5"/> <method name="setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V" since="5"/> - <method name="startSync(Landroid/net/Uri;Landroid/os/Bundle;)V" deprecated="15"/> + <method name="startSync(Landroid/net/Uri;Landroid/os/Bundle;)V" deprecated="16"/> <method name="takePersistableUriPermission(Landroid/net/Uri;I)V" since="19"/> <method name="uncanonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19"/> <method name="unregisterContentObserver(Landroid/database/ContentObserver;)V"/> <method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I"/> <method name="validateSyncExtrasBundle(Landroid/os/Bundle;)V"/> - <method name="wrap(Landroid/content/ContentProvider;)Landroid/content/ContentResolver;" since="29"/> - <method name="wrap(Landroid/content/ContentProviderClient;)Landroid/content/ContentResolver;" since="29"/> <field name="ANY_CURSOR_ITEM_TYPE" since="21"/> <field name="CURSOR_DIR_BASE_TYPE"/> <field name="CURSOR_ITEM_BASE_TYPE"/> @@ -9434,11 +9271,11 @@ <field name="SCHEME_ANDROID_RESOURCE"/> <field name="SCHEME_CONTENT"/> <field name="SCHEME_FILE"/> - <field name="SYNC_EXTRAS_ACCOUNT" deprecated="15"/> + <field name="SYNC_EXTRAS_ACCOUNT" deprecated="16"/> <field name="SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS"/> <field name="SYNC_EXTRAS_DO_NOT_RETRY" since="8"/> <field name="SYNC_EXTRAS_EXPEDITED"/> - <field name="SYNC_EXTRAS_FORCE" deprecated="15"/> + <field name="SYNC_EXTRAS_FORCE" deprecated="16"/> <field name="SYNC_EXTRAS_IGNORE_BACKOFF" since="8"/> <field name="SYNC_EXTRAS_IGNORE_SETTINGS" since="8"/> <field name="SYNC_EXTRAS_INITIALIZE" since="5"/> @@ -9450,18 +9287,11 @@ <field name="SYNC_OBSERVER_TYPE_PENDING" since="8"/> <field name="SYNC_OBSERVER_TYPE_SETTINGS" since="8"/> </class> - <class name="android/content/ContentResolver$MimeTypeInfo" since="29"> - <extends name="java/lang/Object"/> - <method name="getContentDescription()Ljava/lang/CharSequence;"/> - <method name="getIcon()Landroid/graphics/drawable/Icon;"/> - <method name="getLabel()Ljava/lang/CharSequence;"/> - </class> <class name="android/content/ContentUris" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;"/> <method name="parseId(Landroid/net/Uri;)J"/> - <method name="removeId(Landroid/net/Uri;)Landroid/net/Uri;" since="29"/> <method name="withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;"/> </class> <class name="android/content/ContentValues" since="1"> @@ -9503,8 +9333,6 @@ <class name="android/content/Context" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z" since="29"/> - <method name="bindService(Landroid/content/Intent;ILjava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z" since="29"/> <method name="bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z"/> <method name="checkCallingOrSelfPermission(Ljava/lang/String;)I"/> <method name="checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I"/> @@ -9514,7 +9342,7 @@ <method name="checkSelfPermission(Ljava/lang/String;)I" since="23"/> <method name="checkUriPermission(Landroid/net/Uri;III)I"/> <method name="checkUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;III)I"/> - <method name="clearWallpaper()V" deprecated="15"/> + <method name="clearWallpaper()V" deprecated="16"/> <method name="createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;" since="17"/> <method name="createContextForSplit(Ljava/lang/String;)Landroid/content/Context;" since="26"/> <method name="createDeviceProtectedStorageContext()Landroid/content/Context;" since="24"/> @@ -9557,7 +9385,6 @@ <method name="getNoBackupFilesDir()Ljava/io/File;" since="21"/> <method name="getObbDir()Ljava/io/File;" since="11"/> <method name="getObbDirs()[Ljava/io/File;" since="19"/> - <method name="getOpPackageName()Ljava/lang/String;" since="29"/> <method name="getPackageCodePath()Ljava/lang/String;" since="8"/> <method name="getPackageManager()Landroid/content/pm/PackageManager;"/> <method name="getPackageName()Ljava/lang/String;"/> @@ -9571,9 +9398,9 @@ <method name="getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;" since="23"/> <method name="getText(I)Ljava/lang/CharSequence;"/> <method name="getTheme()Landroid/content/res/Resources$Theme;"/> - <method name="getWallpaper()Landroid/graphics/drawable/Drawable;" deprecated="15"/> - <method name="getWallpaperDesiredMinimumHeight()I" deprecated="15"/> - <method name="getWallpaperDesiredMinimumWidth()I" deprecated="15"/> + <method name="getWallpaper()Landroid/graphics/drawable/Drawable;" deprecated="16"/> + <method name="getWallpaperDesiredMinimumHeight()I" deprecated="16"/> + <method name="getWallpaperDesiredMinimumWidth()I" deprecated="16"/> <method name="grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V"/> <method name="isDeviceProtectedStorage()Z" since="24"/> <method name="isRestricted()Z" since="4"/> @@ -9587,7 +9414,7 @@ <method name="openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;"/> <method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;"/> <method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11"/> - <method name="peekWallpaper()Landroid/graphics/drawable/Drawable;" deprecated="15"/> + <method name="peekWallpaper()Landroid/graphics/drawable/Drawable;" deprecated="16"/> <method name="registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V" since="14"/> <method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;"/> <method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent;" since="26"/> @@ -9609,8 +9436,8 @@ <method name="sendStickyOrderedBroadcast(Landroid/content/Intent;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="5" deprecated="21"/> <method name="sendStickyOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="17" deprecated="21"/> <method name="setTheme(I)V"/> - <method name="setWallpaper(Landroid/graphics/Bitmap;)V" deprecated="15"/> - <method name="setWallpaper(Ljava/io/InputStream;)V" deprecated="15"/> + <method name="setWallpaper(Landroid/graphics/Bitmap;)V" deprecated="16"/> + <method name="setWallpaper(Ljava/io/InputStream;)V" deprecated="16"/> <method name="startActivities([Landroid/content/Intent;)V" since="11"/> <method name="startActivities([Landroid/content/Intent;Landroid/os/Bundle;)V" since="16"/> <method name="startActivity(Landroid/content/Intent;)V"/> @@ -9624,7 +9451,6 @@ <method name="unbindService(Landroid/content/ServiceConnection;)V"/> <method name="unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V" since="14"/> <method name="unregisterReceiver(Landroid/content/BroadcastReceiver;)V"/> - <method name="updateServiceGroup(Landroid/content/ServiceConnection;II)V" since="29"/> <field name="ACCESSIBILITY_SERVICE" since="4"/> <field name="ACCOUNT_SERVICE" since="5"/> <field name="ACTIVITY_SERVICE"/> @@ -9640,11 +9466,8 @@ <field name="BIND_DEBUG_UNBIND"/> <field name="BIND_EXTERNAL_SERVICE" since="24"/> <field name="BIND_IMPORTANT" since="14"/> - <field name="BIND_INCLUDE_CAPABILITIES" since="29"/> <field name="BIND_NOT_FOREGROUND" since="8"/> - <field name="BIND_NOT_PERCEPTIBLE" since="29"/> <field name="BIND_WAIVE_PRIORITY" since="14"/> - <field name="BIOMETRIC_SERVICE" since="29"/> <field name="BLUETOOTH_SERVICE" since="18"/> <field name="CAMERA_SERVICE" since="21"/> <field name="CAPTIONING_SERVICE" since="19"/> @@ -9691,7 +9514,6 @@ <field name="PRINT_SERVICE" since="19"/> <field name="RECEIVER_VISIBLE_TO_INSTANT_APPS" since="26"/> <field name="RESTRICTIONS_SERVICE" since="21"/> - <field name="ROLE_SERVICE" since="29"/> <field name="SEARCH_SERVICE"/> <field name="SENSOR_SERVICE"/> <field name="SHORTCUT_SERVICE" since="25"/> @@ -9726,29 +9548,29 @@ </class> <class name="android/content/CursorLoader" since="11" deprecated="28"> <extends name="android/content/AsyncTaskLoader"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V" deprecated="29"/> - <method name="deliverResult(Landroid/database/Cursor;)V" deprecated="29"/> - <method name="getProjection()[Ljava/lang/String;" deprecated="29"/> - <method name="getSelection()Ljava/lang/String;" deprecated="29"/> - <method name="getSelectionArgs()[Ljava/lang/String;" deprecated="29"/> - <method name="getSortOrder()Ljava/lang/String;" deprecated="29"/> - <method name="getUri()Landroid/net/Uri;" deprecated="29"/> - <method name="loadInBackground()Landroid/database/Cursor;" deprecated="29"/> - <method name="onCanceled(Landroid/database/Cursor;)V" deprecated="29"/> - <method name="setProjection([Ljava/lang/String;)V" deprecated="29"/> - <method name="setSelection(Ljava/lang/String;)V" deprecated="29"/> - <method name="setSelectionArgs([Ljava/lang/String;)V" deprecated="29"/> - <method name="setSortOrder(Ljava/lang/String;)V" deprecated="29"/> - <method name="setUri(Landroid/net/Uri;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="deliverResult(Landroid/database/Cursor;)V"/> + <method name="getProjection()[Ljava/lang/String;"/> + <method name="getSelection()Ljava/lang/String;"/> + <method name="getSelectionArgs()[Ljava/lang/String;"/> + <method name="getSortOrder()Ljava/lang/String;"/> + <method name="getUri()Landroid/net/Uri;"/> + <method name="loadInBackground()Landroid/database/Cursor;"/> + <method name="onCanceled(Landroid/database/Cursor;)V"/> + <method name="setProjection([Ljava/lang/String;)V"/> + <method name="setSelection(Ljava/lang/String;)V"/> + <method name="setSelectionArgs([Ljava/lang/String;)V"/> + <method name="setSortOrder(Ljava/lang/String;)V"/> + <method name="setUri(Landroid/net/Uri;)V"/> </class> <class name="android/content/DialogInterface" since="1"> <extends name="java/lang/Object"/> <method name="cancel()V"/> <method name="dismiss()V"/> - <field name="BUTTON1" deprecated="15"/> - <field name="BUTTON2" deprecated="15"/> - <field name="BUTTON3" deprecated="15"/> + <field name="BUTTON1" deprecated="16"/> + <field name="BUTTON2" deprecated="16"/> + <field name="BUTTON3" deprecated="16"/> <field name="BUTTON_NEGATIVE" since="3"/> <field name="BUTTON_NEUTRAL" since="3"/> <field name="BUTTON_POSITIVE" since="3"/> @@ -9836,11 +9658,10 @@ <method name="getFlags()I"/> <method name="getFloatArrayExtra(Ljava/lang/String;)[F"/> <method name="getFloatExtra(Ljava/lang/String;F)F"/> - <method name="getIdentifier()Ljava/lang/String;" since="29"/> <method name="getIntArrayExtra(Ljava/lang/String;)[I"/> <method name="getIntExtra(Ljava/lang/String;I)I"/> <method name="getIntegerArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;"/> - <method name="getIntent(Ljava/lang/String;)Landroid/content/Intent;" deprecated="15"/> + <method name="getIntent(Ljava/lang/String;)Landroid/content/Intent;" deprecated="16"/> <method name="getIntentOld(Ljava/lang/String;)Landroid/content/Intent;"/> <method name="getLongArrayExtra(Ljava/lang/String;)[J"/> <method name="getLongExtra(Ljava/lang/String;J)J"/> @@ -9920,13 +9741,12 @@ <method name="setDataAndTypeAndNormalize(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;" since="16"/> <method name="setExtrasClassLoader(Ljava/lang/ClassLoader;)V"/> <method name="setFlags(I)Landroid/content/Intent;"/> - <method name="setIdentifier(Ljava/lang/String;)Landroid/content/Intent;" since="29"/> <method name="setPackage(Ljava/lang/String;)Landroid/content/Intent;" since="4"/> <method name="setSelector(Landroid/content/Intent;)V" since="15"/> <method name="setSourceBounds(Landroid/graphics/Rect;)V" since="7"/> <method name="setType(Ljava/lang/String;)Landroid/content/Intent;"/> <method name="setTypeAndNormalize(Ljava/lang/String;)Landroid/content/Intent;" since="16"/> - <method name="toURI()Ljava/lang/String;" deprecated="15"/> + <method name="toURI()Ljava/lang/String;" deprecated="16"/> <method name="toUri(I)Ljava/lang/String;" since="4"/> <field name="ACTION_AIRPLANE_MODE_CHANGED"/> <field name="ACTION_ALL_APPS"/> @@ -9952,7 +9772,6 @@ <field name="ACTION_CREATE_SHORTCUT"/> <field name="ACTION_DATE_CHANGED"/> <field name="ACTION_DEFAULT"/> - <field name="ACTION_DEFINE" since="29"/> <field name="ACTION_DELETE"/> <field name="ACTION_DEVICE_STORAGE_LOW" deprecated="26"/> <field name="ACTION_DEVICE_STORAGE_OK" deprecated="26"/> @@ -9973,7 +9792,7 @@ <field name="ACTION_INSERT"/> <field name="ACTION_INSERT_OR_EDIT"/> <field name="ACTION_INSTALL_FAILURE" since="27"/> - <field name="ACTION_INSTALL_PACKAGE" since="14" deprecated="29"/> + <field name="ACTION_INSTALL_PACKAGE" since="14"/> <field name="ACTION_LOCALE_CHANGED" since="7"/> <field name="ACTION_LOCKED_BOOT_COMPLETED" since="24"/> <field name="ACTION_MAIN"/> @@ -9992,7 +9811,7 @@ <field name="ACTION_MEDIA_NOFS" since="3"/> <field name="ACTION_MEDIA_REMOVED"/> <field name="ACTION_MEDIA_SCANNER_FINISHED"/> - <field name="ACTION_MEDIA_SCANNER_SCAN_FILE" deprecated="29"/> + <field name="ACTION_MEDIA_SCANNER_SCAN_FILE"/> <field name="ACTION_MEDIA_SCANNER_STARTED"/> <field name="ACTION_MEDIA_SHARED"/> <field name="ACTION_MEDIA_UNMOUNTABLE"/> @@ -10000,7 +9819,7 @@ <field name="ACTION_MY_PACKAGE_REPLACED" since="12"/> <field name="ACTION_MY_PACKAGE_SUSPENDED" since="28"/> <field name="ACTION_MY_PACKAGE_UNSUSPENDED" since="28"/> - <field name="ACTION_NEW_OUTGOING_CALL" deprecated="29"/> + <field name="ACTION_NEW_OUTGOING_CALL"/> <field name="ACTION_OPEN_DOCUMENT" since="19"/> <field name="ACTION_OPEN_DOCUMENT_TREE" since="21"/> <field name="ACTION_PACKAGES_SUSPENDED" since="24"/> @@ -10010,7 +9829,7 @@ <field name="ACTION_PACKAGE_DATA_CLEARED" since="3"/> <field name="ACTION_PACKAGE_FIRST_LAUNCH" since="12"/> <field name="ACTION_PACKAGE_FULLY_REMOVED" since="14"/> - <field name="ACTION_PACKAGE_INSTALL" deprecated="15"/> + <field name="ACTION_PACKAGE_INSTALL" deprecated="16"/> <field name="ACTION_PACKAGE_NEEDS_VERIFICATION" since="14"/> <field name="ACTION_PACKAGE_REMOVED"/> <field name="ACTION_PACKAGE_REPLACED" since="3"/> @@ -10043,19 +9862,16 @@ <field name="ACTION_TIMEZONE_CHANGED"/> <field name="ACTION_TIME_CHANGED"/> <field name="ACTION_TIME_TICK"/> - <field name="ACTION_TRANSLATE" since="29"/> <field name="ACTION_UID_REMOVED"/> - <field name="ACTION_UMS_CONNECTED" deprecated="15"/> - <field name="ACTION_UMS_DISCONNECTED" deprecated="15"/> - <field name="ACTION_UNINSTALL_PACKAGE" since="14" deprecated="29"/> + <field name="ACTION_UMS_CONNECTED" deprecated="16"/> + <field name="ACTION_UMS_DISCONNECTED" deprecated="16"/> + <field name="ACTION_UNINSTALL_PACKAGE" since="14"/> <field name="ACTION_USER_BACKGROUND" since="17"/> <field name="ACTION_USER_FOREGROUND" since="17"/> <field name="ACTION_USER_INITIALIZE" since="17"/> <field name="ACTION_USER_PRESENT" since="3"/> <field name="ACTION_USER_UNLOCKED" since="24"/> <field name="ACTION_VIEW"/> - <field name="ACTION_VIEW_LOCUS" since="29"/> - <field name="ACTION_VIEW_PERMISSION_USAGE" since="29"/> <field name="ACTION_VOICE_COMMAND"/> <field name="ACTION_WALLPAPER_CHANGED" deprecated="16"/> <field name="ACTION_WEB_SEARCH"/> @@ -10065,7 +9881,6 @@ <field name="CATEGORY_APP_CALENDAR" since="15"/> <field name="CATEGORY_APP_CONTACTS" since="15"/> <field name="CATEGORY_APP_EMAIL" since="15"/> - <field name="CATEGORY_APP_FILES" since="29"/> <field name="CATEGORY_APP_GALLERY" since="15"/> <field name="CATEGORY_APP_MAPS" since="15"/> <field name="CATEGORY_APP_MARKET" since="11"/> @@ -10090,7 +9905,6 @@ <field name="CATEGORY_OPENABLE"/> <field name="CATEGORY_PREFERENCE"/> <field name="CATEGORY_SAMPLE_CODE"/> - <field name="CATEGORY_SECONDARY_HOME" since="29"/> <field name="CATEGORY_SELECTED_ALTERNATIVE"/> <field name="CATEGORY_TAB"/> <field name="CATEGORY_TEST"/> @@ -10108,11 +9922,10 @@ <field name="EXTRA_ASSIST_INPUT_HINT_KEYBOARD" since="21"/> <field name="EXTRA_ASSIST_PACKAGE" since="18"/> <field name="EXTRA_ASSIST_UID" since="23"/> - <field name="EXTRA_AUTO_LAUNCH_SINGLE_CHOICE" since="29"/> <field name="EXTRA_BCC"/> <field name="EXTRA_BUG_REPORT" since="14"/> <field name="EXTRA_CC"/> - <field name="EXTRA_CHANGED_COMPONENT_NAME" since="5" deprecated="15"/> + <field name="EXTRA_CHANGED_COMPONENT_NAME" since="5" deprecated="16"/> <field name="EXTRA_CHANGED_COMPONENT_NAME_LIST" since="7"/> <field name="EXTRA_CHANGED_PACKAGE_LIST" since="8"/> <field name="EXTRA_CHANGED_UID_LIST" since="8"/> @@ -10122,7 +9935,6 @@ <field name="EXTRA_CHOSEN_COMPONENT_INTENT_SENDER" since="22"/> <field name="EXTRA_COMPONENT_NAME" since="26"/> <field name="EXTRA_CONTENT_ANNOTATIONS" since="26"/> - <field name="EXTRA_CONTENT_QUERY" since="29"/> <field name="EXTRA_DATA_REMOVED" since="3"/> <field name="EXTRA_DOCK_STATE" since="5"/> <field name="EXTRA_DOCK_STATE_CAR" since="5"/> @@ -10131,7 +9943,6 @@ <field name="EXTRA_DOCK_STATE_LE_DESK" since="11"/> <field name="EXTRA_DOCK_STATE_UNDOCKED" since="5"/> <field name="EXTRA_DONT_KILL_APP"/> - <field name="EXTRA_DURATION_MILLIS" since="29"/> <field name="EXTRA_EMAIL"/> <field name="EXTRA_EXCLUDE_COMPONENTS" since="24"/> <field name="EXTRA_FROM_STORAGE" since="26"/> @@ -10142,7 +9953,6 @@ <field name="EXTRA_INTENT"/> <field name="EXTRA_KEY_EVENT"/> <field name="EXTRA_LOCAL_ONLY" since="11"/> - <field name="EXTRA_LOCUS_ID" since="29"/> <field name="EXTRA_MIME_TYPES" since="19"/> <field name="EXTRA_NOT_UNKNOWN_SOURCE" since="14"/> <field name="EXTRA_ORIGINATING_URI" since="17"/> @@ -10164,7 +9974,6 @@ <field name="EXTRA_RETURN_RESULT" since="14"/> <field name="EXTRA_SHORTCUT_ICON" deprecated="26"/> <field name="EXTRA_SHORTCUT_ICON_RESOURCE" deprecated="26"/> - <field name="EXTRA_SHORTCUT_ID" since="29"/> <field name="EXTRA_SHORTCUT_INTENT" deprecated="26"/> <field name="EXTRA_SHORTCUT_NAME" deprecated="26"/> <field name="EXTRA_SHUTDOWN_USERSPACE_ONLY" since="19"/> @@ -10182,7 +9991,6 @@ <field name="FILL_IN_CLIP_DATA" since="16"/> <field name="FILL_IN_COMPONENT"/> <field name="FILL_IN_DATA"/> - <field name="FILL_IN_IDENTIFIER" since="29"/> <field name="FILL_IN_PACKAGE" since="4"/> <field name="FILL_IN_SELECTOR" since="15"/> <field name="FILL_IN_SOURCE_BOUNDS" since="7"/> @@ -10190,6 +9998,7 @@ <field name="FLAG_ACTIVITY_CLEAR_TASK" since="11"/> <field name="FLAG_ACTIVITY_CLEAR_TOP"/> <field name="FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET" since="3" deprecated="21"/> + <field name="FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS" since="16" removed="17"/> <field name="FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS"/> <field name="FLAG_ACTIVITY_FORWARD_RESULT"/> <field name="FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY"/> @@ -10208,7 +10017,6 @@ <field name="FLAG_ACTIVITY_SINGLE_TOP"/> <field name="FLAG_ACTIVITY_TASK_ON_HOME" since="11"/> <field name="FLAG_DEBUG_LOG_RESOLUTION"/> - <field name="FLAG_DIRECT_BOOT_AUTO" since="29"/> <field name="FLAG_EXCLUDE_STOPPED_PACKAGES" since="12"/> <field name="FLAG_FROM_BACKGROUND"/> <field name="FLAG_GRANT_PERSISTABLE_URI_PERMISSION" since="19"/> @@ -10327,6 +10135,8 @@ <class name="android/content/IntentSender" since="4"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/IBinder;)V" since="29"/> <method name="getCreatorPackage()Ljava/lang/String;" since="17"/> <method name="getCreatorUid()I" since="17"/> <method name="getCreatorUserHandle()Landroid/os/UserHandle;" since="17"/> @@ -10349,55 +10159,48 @@ </class> <class name="android/content/Loader" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="abandon()V" deprecated="29"/> - <method name="cancelLoad()Z" since="16" deprecated="29"/> - <method name="commitContentChanged()V" since="18" deprecated="29"/> - <method name="dataToString(Ljava/lang/Object;)Ljava/lang/String;" deprecated="29"/> - <method name="deliverCancellation()V" since="16" deprecated="29"/> - <method name="deliverResult(Ljava/lang/Object;)V" deprecated="29"/> - <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" deprecated="29"/> - <method name="forceLoad()V" deprecated="29"/> - <method name="getContext()Landroid/content/Context;" deprecated="29"/> - <method name="getId()I" deprecated="29"/> - <method name="isAbandoned()Z" deprecated="29"/> - <method name="isReset()Z" deprecated="29"/> - <method name="isStarted()Z" deprecated="29"/> - <method name="onAbandon()V" deprecated="29"/> - <method name="onCancelLoad()Z" since="16" deprecated="29"/> - <method name="onContentChanged()V" deprecated="29"/> - <method name="onForceLoad()V" deprecated="29"/> - <method name="onReset()V" deprecated="29"/> - <method name="onStartLoading()V" deprecated="29"/> - <method name="onStopLoading()V" deprecated="29"/> - <method name="registerListener(ILandroid/content/Loader$OnLoadCompleteListener;)V" deprecated="29"/> - <method name="registerOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V" since="16" deprecated="29"/> - <method name="reset()V" deprecated="29"/> - <method name="rollbackContentChanged()V" since="18" deprecated="29"/> - <method name="startLoading()V" deprecated="29"/> - <method name="stopLoading()V" deprecated="29"/> - <method name="takeContentChanged()Z" deprecated="29"/> - <method name="unregisterListener(Landroid/content/Loader$OnLoadCompleteListener;)V" deprecated="29"/> - <method name="unregisterOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V" since="16" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="abandon()V"/> + <method name="cancelLoad()Z" since="16"/> + <method name="commitContentChanged()V" since="18"/> + <method name="dataToString(Ljava/lang/Object;)Ljava/lang/String;"/> + <method name="deliverCancellation()V" since="16"/> + <method name="deliverResult(Ljava/lang/Object;)V"/> + <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> + <method name="forceLoad()V"/> + <method name="getContext()Landroid/content/Context;"/> + <method name="getId()I"/> + <method name="isAbandoned()Z"/> + <method name="isReset()Z"/> + <method name="isStarted()Z"/> + <method name="onAbandon()V"/> + <method name="onCancelLoad()Z" since="16"/> + <method name="onContentChanged()V"/> + <method name="onForceLoad()V"/> + <method name="onReset()V"/> + <method name="onStartLoading()V"/> + <method name="onStopLoading()V"/> + <method name="registerListener(ILandroid/content/Loader$OnLoadCompleteListener;)V"/> + <method name="registerOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V" since="16"/> + <method name="reset()V"/> + <method name="rollbackContentChanged()V" since="18"/> + <method name="startLoading()V"/> + <method name="stopLoading()V"/> + <method name="takeContentChanged()Z"/> + <method name="unregisterListener(Landroid/content/Loader$OnLoadCompleteListener;)V"/> + <method name="unregisterOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V" since="16"/> </class> <class name="android/content/Loader$ForceLoadContentObserver" since="11" deprecated="28"> <extends name="android/database/ContentObserver"/> - <method name="<init>(Landroid/content/Loader;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Loader;)V"/> </class> <class name="android/content/Loader$OnLoadCanceledListener" since="16" deprecated="28"> <extends name="java/lang/Object"/> - <method name="onLoadCanceled(Landroid/content/Loader;)V" deprecated="29"/> + <method name="onLoadCanceled(Landroid/content/Loader;)V"/> </class> <class name="android/content/Loader$OnLoadCompleteListener" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="onLoadComplete(Landroid/content/Loader;Ljava/lang/Object;)V" deprecated="29"/> - </class> - <class name="android/content/LocusId" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Ljava/lang/String;)V"/> - <method name="getId()Ljava/lang/String;"/> - <field name="CREATOR"/> + <method name="onLoadComplete(Landroid/content/Loader;Ljava/lang/Object;)V"/> </class> <class name="android/content/MutableContextWrapper" since="1"> <extends name="android/content/ContextWrapper"/> @@ -10426,6 +10229,7 @@ </class> <class name="android/content/QuickViewConstants" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="FEATURE_DELETE" since="28"/> <field name="FEATURE_DOWNLOAD"/> <field name="FEATURE_EDIT"/> @@ -10483,6 +10287,7 @@ </class> <class name="android/content/RestrictionsManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="convertRestrictionsToBundle(Ljava/util/List;)Landroid/os/Bundle;" since="23"/> <method name="createLocalApprovalIntent()Landroid/content/Intent;"/> <method name="getApplicationRestrictions()Landroid/os/Bundle;"/> @@ -10584,12 +10389,15 @@ </class> <class name="android/content/SyncContext" since="5"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getSyncContextBinder()Landroid/os/IBinder;"/> <method name="onFinished(Landroid/content/SyncResult;)V"/> </class> <class name="android/content/SyncInfo" since="8"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable" since="11"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/SyncInfo;)V" since="29"/> <field name="account"/> <field name="authority"/> <field name="startTime"/> @@ -10597,6 +10405,8 @@ <class name="android/content/SyncRequest" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/content/SyncRequest$Builder" since="19"> @@ -10668,6 +10478,8 @@ <class name="android/content/UriPermission" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getPersistedTime()J"/> <method name="getUri()Landroid/net/Uri;"/> <method name="isReadPermission()Z"/> @@ -10781,8 +10593,6 @@ <method name="<init>(Landroid/content/pm/ApplicationInfo;)V"/> <method name="dump(Landroid/util/Printer;Ljava/lang/String;)V"/> <method name="getCategoryTitle(Landroid/content/Context;I)Ljava/lang/CharSequence;" since="26"/> - <method name="isProfileableByShell()Z" since="29"/> - <method name="isResourceOverlay()Z" since="29"/> <method name="isVirtualPreload()Z" since="27"/> <method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;"/> <field name="CATEGORY_AUDIO" since="26"/> @@ -10906,6 +10716,7 @@ </class> <class name="android/content/pm/CrossProfileApps" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getProfileSwitchingIconDrawable(Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;"/> <method name="getProfileSwitchingLabel(Landroid/os/UserHandle;)Ljava/lang/CharSequence;"/> <method name="getTargetUserProfiles()Ljava/util/List;"/> @@ -10977,6 +10788,8 @@ </class> <class name="android/content/pm/LauncherActivityInfo" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="getApplicationInfo()Landroid/content/pm/ApplicationInfo;"/> <method name="getBadgedIcon(I)Landroid/graphics/drawable/Drawable;"/> <method name="getComponentName()Landroid/content/ComponentName;"/> @@ -10988,8 +10801,9 @@ </class> <class name="android/content/pm/LauncherApps" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="getActivityList(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;"/> - <method name="getAllPackageInstallerSessions()Ljava/util/List;" since="29"/> <method name="getApplicationInfo(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;" since="26"/> <method name="getPinItemRequest(Landroid/content/Intent;)Landroid/content/pm/LauncherApps$PinItemRequest;" since="26"/> <method name="getProfiles()Ljava/util/List;" since="26"/> @@ -11005,16 +10819,12 @@ <method name="pinShortcuts(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V" since="25"/> <method name="registerCallback(Landroid/content/pm/LauncherApps$Callback;)V"/> <method name="registerCallback(Landroid/content/pm/LauncherApps$Callback;Landroid/os/Handler;)V"/> - <method name="registerPackageInstallerSessionCallback(Ljava/util/concurrent/Executor;Landroid/content/pm/PackageInstaller$SessionCallback;)V" since="29"/> <method name="resolveActivity(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/LauncherActivityInfo;"/> - <method name="shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z" since="29"/> <method name="startAppDetailsActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Landroid/graphics/Rect;Landroid/os/Bundle;)V"/> <method name="startMainActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Landroid/graphics/Rect;Landroid/os/Bundle;)V"/> - <method name="startPackageInstallerSessionDetailsActivity(Landroid/content/pm/PackageInstaller$SessionInfo;Landroid/graphics/Rect;Landroid/os/Bundle;)V" since="29"/> <method name="startShortcut(Landroid/content/pm/ShortcutInfo;Landroid/graphics/Rect;Landroid/os/Bundle;)V" since="25"/> <method name="startShortcut(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V" since="25"/> <method name="unregisterCallback(Landroid/content/pm/LauncherApps$Callback;)V"/> - <method name="unregisterPackageInstallerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;)V" since="29"/> <field name="ACTION_CONFIRM_PIN_APPWIDGET" since="26"/> <field name="ACTION_CONFIRM_PIN_SHORTCUT" since="26"/> <field name="EXTRA_PIN_ITEM_REQUEST" since="26"/> @@ -11035,6 +10845,8 @@ <class name="android/content/pm/LauncherApps$PinItemRequest" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="accept()Z"/> <method name="accept(Landroid/os/Bundle;)Z"/> <method name="getAppWidgetProviderInfo(Landroid/content/Context;)Landroid/appwidget/AppWidgetProviderInfo;"/> @@ -11060,14 +10872,6 @@ <field name="FLAG_MATCH_PINNED"/> <field name="FLAG_MATCH_PINNED_BY_ANY_LAUNCHER" since="28"/> </class> - <class name="android/content/pm/ModuleInfo" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getName()Ljava/lang/CharSequence;"/> - <method name="getPackageName()Ljava/lang/String;"/> - <method name="isHidden()Z"/> - <field name="CREATOR"/> - </class> <class name="android/content/pm/PackageInfo" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -11089,7 +10893,6 @@ <field name="gids"/> <field name="installLocation" since="21"/> <field name="instrumentation"/> - <field name="isApex" since="29"/> <field name="lastUpdateTime" since="9"/> <field name="packageName"/> <field name="permissions"/> @@ -11110,14 +10913,12 @@ </class> <class name="android/content/pm/PackageInstaller" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="abandonSession(I)V"/> <method name="createSession(Landroid/content/pm/PackageInstaller$SessionParams;)I"/> - <method name="getActiveStagedSession()Landroid/content/pm/PackageInstaller$SessionInfo;" since="29"/> <method name="getAllSessions()Ljava/util/List;"/> <method name="getMySessions()Ljava/util/List;"/> <method name="getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;"/> - <method name="getStagedSessions()Ljava/util/List;" since="29"/> - <method name="installExistingPackage(Ljava/lang/String;ILandroid/content/IntentSender;)V" since="29"/> <method name="openSession(I)Landroid/content/pm/PackageInstaller$Session;"/> <method name="registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;)V"/> <method name="registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V"/> @@ -11128,7 +10929,6 @@ <method name="updateSessionAppLabel(ILjava/lang/CharSequence;)V"/> <field name="ACTION_SESSION_COMMITTED" since="26"/> <field name="ACTION_SESSION_DETAILS"/> - <field name="ACTION_SESSION_UPDATED" since="29"/> <field name="EXTRA_OTHER_PACKAGE_NAME"/> <field name="EXTRA_PACKAGE_NAME"/> <field name="EXTRA_SESSION" since="26"/> @@ -11149,18 +10949,13 @@ <class name="android/content/pm/PackageInstaller$Session" since="21"> <extends name="java/lang/Object"/> <implements name="java/io/Closeable"/> + <method name="<init>()V"/> <method name="abandon()V"/> - <method name="addChildSessionId(I)V" since="29"/> <method name="commit(Landroid/content/IntentSender;)V"/> <method name="fsync(Ljava/io/OutputStream;)V"/> - <method name="getChildSessionIds()[I" since="29"/> <method name="getNames()[Ljava/lang/String;"/> - <method name="getParentSessionId()I" since="29"/> - <method name="isMultiPackage()Z" since="29"/> - <method name="isStaged()Z" since="29"/> <method name="openRead(Ljava/lang/String;)Ljava/io/InputStream;"/> <method name="openWrite(Ljava/lang/String;JJ)Ljava/io/OutputStream;"/> - <method name="removeChildSessionId(I)V" since="29"/> <method name="removeSplit(Ljava/lang/String;)V" since="24"/> <method name="setStagingProgress(F)V"/> <method name="transfer(Ljava/lang/String;)V" since="27"/> @@ -11177,40 +10972,24 @@ <class name="android/content/pm/PackageInstaller$SessionInfo" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="createDetailsIntent()Landroid/content/Intent;"/> <method name="getAppIcon()Landroid/graphics/Bitmap;"/> <method name="getAppLabel()Ljava/lang/CharSequence;"/> <method name="getAppPackageName()Ljava/lang/String;"/> - <method name="getChildSessionIds()[I" since="29"/> <method name="getInstallLocation()I" since="27"/> <method name="getInstallReason()I" since="26"/> <method name="getInstallerPackageName()Ljava/lang/String;"/> <method name="getMode()I" since="27"/> <method name="getOriginatingUid()I" since="27"/> <method name="getOriginatingUri()Landroid/net/Uri;" since="27"/> - <method name="getParentSessionId()I" since="29"/> <method name="getProgress()F"/> <method name="getReferrerUri()Landroid/net/Uri;" since="27"/> <method name="getSessionId()I"/> <method name="getSize()J" since="27"/> - <method name="getStagedSessionErrorCode()I" since="29"/> - <method name="getStagedSessionErrorMessage()Ljava/lang/String;" since="29"/> - <method name="getUpdatedMillis()J" since="29"/> - <method name="getUser()Landroid/os/UserHandle;" since="29"/> <method name="isActive()Z"/> - <method name="isCommitted()Z" since="29"/> - <method name="isMultiPackage()Z" since="29"/> <method name="isSealed()Z" since="26"/> - <method name="isStaged()Z" since="29"/> - <method name="isStagedSessionApplied()Z" since="29"/> - <method name="isStagedSessionFailed()Z" since="29"/> - <method name="isStagedSessionReady()Z" since="29"/> <field name="CREATOR"/> - <field name="INVALID_ID" since="29"/> - <field name="STAGED_SESSION_ACTIVATION_FAILED" since="29"/> - <field name="STAGED_SESSION_NO_ERROR" since="29"/> - <field name="STAGED_SESSION_UNKNOWN" since="29"/> - <field name="STAGED_SESSION_VERIFICATION_FAILED" since="29"/> </class> <class name="android/content/pm/PackageInstaller$SessionParams" since="21"> <extends name="java/lang/Object"/> @@ -11221,16 +11000,13 @@ <method name="setAppPackageName(Ljava/lang/String;)V"/> <method name="setInstallLocation(I)V"/> <method name="setInstallReason(I)V" since="26"/> - <method name="setMultiPackage()V" since="29"/> <method name="setOriginatingUid(I)V" since="24"/> <method name="setOriginatingUri(Landroid/net/Uri;)V"/> <method name="setReferrerUri(Landroid/net/Uri;)V"/> <method name="setSize(J)V"/> - <method name="setWhitelistedRestrictedPermissions(Ljava/util/Set;)V" since="29"/> <field name="CREATOR"/> <field name="MODE_FULL_INSTALL"/> <field name="MODE_INHERIT_EXISTING"/> - <field name="RESTRICTED_PERMISSIONS_ALL" since="29"/> </class> <class name="android/content/pm/PackageItemInfo" since="1"> <extends name="java/lang/Object"/> @@ -11264,18 +11040,17 @@ <class name="android/content/pm/PackageManager" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="addPackageToPreferred(Ljava/lang/String;)V" deprecated="15"/> + <method name="addPackageToPreferred(Ljava/lang/String;)V" deprecated="16"/> <method name="addPermission(Landroid/content/pm/PermissionInfo;)Z"/> <method name="addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z" since="8"/> - <method name="addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V" deprecated="15"/> - <method name="addWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;I)Z" since="29"/> + <method name="addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V" deprecated="16"/> <method name="canRequestPackageInstalls()Z" since="26"/> <method name="canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8"/> <method name="checkPermission(Ljava/lang/String;Ljava/lang/String;)I"/> <method name="checkSignatures(II)I" since="5"/> <method name="checkSignatures(Ljava/lang/String;Ljava/lang/String;)I"/> <method name="clearInstantAppCookie()V" since="26"/> - <method name="clearPackagePreferredActivities(Ljava/lang/String;)V" deprecated="29"/> + <method name="clearPackagePreferredActivities(Ljava/lang/String;)V"/> <method name="currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8"/> <method name="extendVerificationTimeout(IIJ)V" since="17"/> <method name="getActivityBanner(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" since="20"/> @@ -11300,7 +11075,6 @@ <method name="getDefaultActivityIcon()Landroid/graphics/drawable/Drawable;"/> <method name="getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;"/> <method name="getInstalledApplications(I)Ljava/util/List;"/> - <method name="getInstalledModules(I)Ljava/util/List;" since="29"/> <method name="getInstalledPackages(I)Ljava/util/List;"/> <method name="getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;" since="5"/> <method name="getInstantAppCookie()[B" since="26"/> @@ -11308,7 +11082,6 @@ <method name="getInstrumentationInfo(Landroid/content/ComponentName;I)Landroid/content/pm/InstrumentationInfo;"/> <method name="getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;" since="3"/> <method name="getLeanbackLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;" since="21"/> - <method name="getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;" since="29"/> <method name="getNameForUid(I)Ljava/lang/String;"/> <method name="getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;"/> <method name="getPackageGids(Ljava/lang/String;)[I"/> @@ -11321,8 +11094,8 @@ <method name="getPackagesHoldingPermissions([Ljava/lang/String;I)Ljava/util/List;" since="18"/> <method name="getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;"/> <method name="getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;"/> - <method name="getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I" deprecated="29"/> - <method name="getPreferredPackages(I)Ljava/util/List;" deprecated="29"/> + <method name="getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I"/> + <method name="getPreferredPackages(I)Ljava/util/List;"/> <method name="getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo;" since="9"/> <method name="getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;"/> <method name="getResourcesForActivity(Landroid/content/ComponentName;)Landroid/content/res/Resources;"/> @@ -11331,14 +11104,12 @@ <method name="getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;"/> <method name="getSharedLibraries(I)Ljava/util/List;" since="26"/> <method name="getSuspendedPackageAppExtras()Landroid/os/Bundle;" since="28"/> - <method name="getSyntheticAppDetailsActivityEnabled(Ljava/lang/String;)Z" since="29"/> <method name="getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;" since="5"/> <method name="getSystemSharedLibraryNames()[Ljava/lang/String;" since="3"/> <method name="getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;"/> <method name="getUserBadgedDrawableForDensity(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;Landroid/graphics/Rect;I)Landroid/graphics/drawable/Drawable;" since="21"/> <method name="getUserBadgedIcon(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;" since="21"/> <method name="getUserBadgedLabel(Ljava/lang/CharSequence;Landroid/os/UserHandle;)Ljava/lang/CharSequence;" since="21"/> - <method name="getWhitelistedRestrictedPermissions(Ljava/lang/String;I)Ljava/util/Set;" since="29"/> <method name="getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser;"/> <method name="hasSigningCertificate(I[BI)Z" since="28"/> <method name="hasSigningCertificate(Ljava/lang/String;[BI)Z" since="28"/> @@ -11346,11 +11117,9 @@ <method name="hasSystemFeature(Ljava/lang/String;I)Z" since="24"/> <method name="installPackage(Landroid/net/Uri;)V" removed="4"/> <method name="installPackage(Landroid/net/Uri;Landroid/content/pm/IPackageInstallObserver;I)V" removed="4"/> - <method name="isDeviceUpgrading()Z" since="29"/> <method name="isInstantApp()Z" since="26"/> <method name="isInstantApp(Ljava/lang/String;)Z" since="26"/> <method name="isPackageSuspended()Z" since="28"/> - <method name="isPackageSuspended(Ljava/lang/String;)Z" since="29"/> <method name="isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;)Z" since="23"/> <method name="isSafeMode()Z" since="3"/> <method name="queryBroadcastReceivers(Landroid/content/Intent;I)Ljava/util/List;"/> @@ -11361,9 +11130,8 @@ <method name="queryIntentContentProviders(Landroid/content/Intent;I)Ljava/util/List;" since="19"/> <method name="queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;"/> <method name="queryPermissionsByGroup(Ljava/lang/String;I)Ljava/util/List;"/> - <method name="removePackageFromPreferred(Ljava/lang/String;)V" deprecated="15"/> + <method name="removePackageFromPreferred(Ljava/lang/String;)V" deprecated="16"/> <method name="removePermission(Ljava/lang/String;)V"/> - <method name="removeWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;I)Z" since="29"/> <method name="resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;"/> <method name="resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;"/> <method name="resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;"/> @@ -11404,14 +11172,13 @@ <field name="FEATURE_CAMERA_FLASH" since="7"/> <field name="FEATURE_CAMERA_FRONT" since="9"/> <field name="FEATURE_CAMERA_LEVEL_FULL" since="21"/> - <field name="FEATURE_CANT_SAVE_STATE" since="28"/> + <field name="FEATURE_CANT_SAVE_STATE" since="29"/> <field name="FEATURE_COMPANION_DEVICE_SETUP" since="26"/> <field name="FEATURE_CONNECTION_SERVICE" since="21"/> <field name="FEATURE_CONSUMER_IR" since="19"/> <field name="FEATURE_DEVICE_ADMIN" since="19"/> <field name="FEATURE_EMBEDDED" since="26"/> <field name="FEATURE_ETHERNET" since="24"/> - <field name="FEATURE_FACE" since="29"/> <field name="FEATURE_FAKETOUCH" since="11"/> <field name="FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT" since="13"/> <field name="FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND" since="13"/> @@ -11421,8 +11188,6 @@ <field name="FEATURE_HIFI_SENSORS" since="23"/> <field name="FEATURE_HOME_SCREEN" since="18"/> <field name="FEATURE_INPUT_METHODS" since="18"/> - <field name="FEATURE_IPSEC_TUNNELS" since="29"/> - <field name="FEATURE_IRIS" since="29"/> <field name="FEATURE_LEANBACK" since="21"/> <field name="FEATURE_LEANBACK_ONLY" since="26"/> <field name="FEATURE_LIVE_TV" since="21"/> @@ -11434,11 +11199,8 @@ <field name="FEATURE_MICROPHONE" since="8"/> <field name="FEATURE_MIDI" since="23"/> <field name="FEATURE_NFC" since="9"/> - <field name="FEATURE_NFC_BEAM" since="29"/> <field name="FEATURE_NFC_HOST_CARD_EMULATION" since="19"/> <field name="FEATURE_NFC_HOST_CARD_EMULATION_NFCF" since="24"/> - <field name="FEATURE_NFC_OFF_HOST_CARD_EMULATION_ESE" since="29"/> - <field name="FEATURE_NFC_OFF_HOST_CARD_EMULATION_UICC" since="29"/> <field name="FEATURE_OPENGLES_EXTENSION_PACK" since="21"/> <field name="FEATURE_PC" since="27"/> <field name="FEATURE_PICTURE_IN_PICTURE" since="24"/> @@ -11448,7 +11210,6 @@ <field name="FEATURE_SCREEN_LANDSCAPE" since="13"/> <field name="FEATURE_SCREEN_PORTRAIT" since="13"/> <field name="FEATURE_SECURELY_REMOVES_USERS" since="21"/> - <field name="FEATURE_SECURE_LOCK_SCREEN" since="29"/> <field name="FEATURE_SENSOR_ACCELEROMETER" since="8"/> <field name="FEATURE_SENSOR_AMBIENT_TEMPERATURE" since="21"/> <field name="FEATURE_SENSOR_BAROMETER" since="9"/> @@ -11461,9 +11222,6 @@ <field name="FEATURE_SENSOR_RELATIVE_HUMIDITY" since="21"/> <field name="FEATURE_SENSOR_STEP_COUNTER" since="19"/> <field name="FEATURE_SENSOR_STEP_DETECTOR" since="19"/> - <field name="FEATURE_SE_OMAPI_ESE" since="30"/> - <field name="FEATURE_SE_OMAPI_SD" since="30"/> - <field name="FEATURE_SE_OMAPI_UICC" since="30"/> <field name="FEATURE_SIP" since="9"/> <field name="FEATURE_SIP_VOIP" since="9"/> <field name="FEATURE_STRONGBOX_KEYSTORE" since="28"/> @@ -11471,7 +11229,6 @@ <field name="FEATURE_TELEPHONY_CDMA" since="7"/> <field name="FEATURE_TELEPHONY_EUICC" since="28"/> <field name="FEATURE_TELEPHONY_GSM" since="7"/> - <field name="FEATURE_TELEPHONY_IMS" since="29"/> <field name="FEATURE_TELEPHONY_MBMS" since="28"/> <field name="FEATURE_TELEVISION" since="16" deprecated="21"/> <field name="FEATURE_TOUCHSCREEN" since="8"/> @@ -11494,9 +11251,6 @@ <field name="FEATURE_WIFI_DIRECT" since="14"/> <field name="FEATURE_WIFI_PASSPOINT" since="27"/> <field name="FEATURE_WIFI_RTT" since="28"/> - <field name="FLAG_PERMISSION_WHITELIST_INSTALLER" since="29"/> - <field name="FLAG_PERMISSION_WHITELIST_SYSTEM" since="29"/> - <field name="FLAG_PERMISSION_WHITELIST_UPGRADE" since="29"/> <field name="FORWARD_LOCK_PACKAGE" removed="4"/> <field name="GET_ACTIVITIES"/> <field name="GET_CONFIGURATIONS" since="3"/> @@ -11546,9 +11300,7 @@ <field name="INSTALL_REASON_USER" since="26"/> <field name="INSTALL_SUCCEEDED" removed="4"/> <field name="MATCH_ALL" since="23"/> - <field name="MATCH_APEX" since="29"/> <field name="MATCH_DEFAULT_ONLY"/> - <field name="MATCH_DIRECT_BOOT_AUTO" since="29"/> <field name="MATCH_DIRECT_BOOT_AWARE" since="24"/> <field name="MATCH_DIRECT_BOOT_UNAWARE" since="24"/> <field name="MATCH_DISABLED_COMPONENTS" since="24"/> @@ -11579,19 +11331,19 @@ <class name="android/content/pm/PackageStats" since="1" deprecated="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="<init>(Landroid/content/pm/PackageStats;)V" deprecated="29"/> - <method name="<init>(Landroid/os/Parcel;)V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <field name="CREATOR" deprecated="29"/> - <field name="cacheSize" deprecated="29"/> - <field name="codeSize" deprecated="29"/> - <field name="dataSize" deprecated="29"/> - <field name="externalCacheSize" since="11" deprecated="29"/> - <field name="externalCodeSize" since="14" deprecated="29"/> - <field name="externalDataSize" since="11" deprecated="29"/> - <field name="externalMediaSize" since="11" deprecated="29"/> - <field name="externalObbSize" since="11" deprecated="29"/> - <field name="packageName" deprecated="29"/> + <method name="<init>(Landroid/content/pm/PackageStats;)V"/> + <method name="<init>(Landroid/os/Parcel;)V"/> + <method name="<init>(Ljava/lang/String;)V"/> + <field name="CREATOR"/> + <field name="cacheSize"/> + <field name="codeSize"/> + <field name="dataSize"/> + <field name="externalCacheSize" since="11"/> + <field name="externalCodeSize" since="14"/> + <field name="externalDataSize" since="11"/> + <field name="externalMediaSize" since="11"/> + <field name="externalObbSize" since="11"/> + <field name="packageName"/> </class> <class name="android/content/pm/PathPermission" since="4"> <extends name="android/os/PatternMatcher"/> @@ -11604,8 +11356,8 @@ <class name="android/content/pm/PermissionGroupInfo" since="1"> <extends name="android/content/pm/PackageItemInfo"/> <implements name="android/os/Parcelable"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Landroid/content/pm/PermissionGroupInfo;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Landroid/content/pm/PermissionGroupInfo;)V"/> <method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;"/> <field name="CREATOR"/> <field name="FLAG_PERSONAL_INFO" since="17"/> @@ -11617,17 +11369,14 @@ <class name="android/content/pm/PermissionInfo" since="1"> <extends name="android/content/pm/PackageItemInfo"/> <implements name="android/os/Parcelable"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Landroid/content/pm/PermissionInfo;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Landroid/content/pm/PermissionInfo;)V"/> <method name="getProtection()I" since="28"/> <method name="getProtectionFlags()I" since="28"/> <method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;"/> <field name="CREATOR"/> <field name="FLAG_COSTS_MONEY" since="17"/> - <field name="FLAG_HARD_RESTRICTED" since="29"/> - <field name="FLAG_IMMUTABLY_RESTRICTED" since="29"/> <field name="FLAG_INSTALLED" since="23"/> - <field name="FLAG_SOFT_RESTRICTED" since="29"/> <field name="PROTECTION_DANGEROUS"/> <field name="PROTECTION_FLAG_APPOP" since="21"/> <field name="PROTECTION_FLAG_DEVELOPMENT" since="16"/> @@ -11661,10 +11410,9 @@ <field name="FLAG_SINGLE_USER" since="17"/> <field name="authority"/> <field name="flags" since="17"/> - <field name="forceUriPermissions" since="29"/> <field name="grantUriPermissions"/> <field name="initOrder"/> - <field name="isSyncable" deprecated="15"/> + <field name="isSyncable" deprecated="16"/> <field name="multiprocess"/> <field name="pathPermissions" since="4"/> <field name="readPermission"/> @@ -11708,27 +11456,19 @@ <method name="<init>()V"/> <method name="<init>(Landroid/content/pm/ServiceInfo;)V"/> <method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" since="5"/> - <method name="getForegroundServiceType()I" since="29"/> <field name="CREATOR"/> <field name="FLAG_EXTERNAL_SERVICE" since="24"/> <field name="FLAG_ISOLATED_PROCESS" since="16"/> <field name="FLAG_SINGLE_USER" since="17"/> <field name="FLAG_STOP_WITH_TASK" since="14"/> - <field name="FLAG_USE_APP_ZYGOTE" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_DATA_SYNC" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_LOCATION" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_MANIFEST" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_NONE" since="29"/> - <field name="FOREGROUND_SERVICE_TYPE_PHONE_CALL" since="29"/> <field name="flags" since="14"/> <field name="permission"/> </class> <class name="android/content/pm/SharedLibraryInfo" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getDeclaringPackage()Landroid/content/pm/VersionedPackage;"/> <method name="getDependentPackages()Ljava/util/List;"/> <method name="getLongVersion()J" since="28"/> @@ -11744,6 +11484,8 @@ <class name="android/content/pm/ShortcutInfo" since="25"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/pm/ShortcutInfo$Builder;)V" since="29"/> <method name="getActivity()Landroid/content/ComponentName;"/> <method name="getCategories()Ljava/util/Set;"/> <method name="getDisabledMessage()Ljava/lang/CharSequence;"/> @@ -11753,7 +11495,6 @@ <method name="getIntent()Landroid/content/Intent;"/> <method name="getIntents()[Landroid/content/Intent;"/> <method name="getLastChangedTimestamp()J"/> - <method name="getLocusId()Landroid/content/LocusId;" since="29"/> <method name="getLongLabel()Ljava/lang/CharSequence;"/> <method name="getPackage()Ljava/lang/String;"/> <method name="getRank()I"/> @@ -11787,16 +11528,14 @@ <method name="setIcon(Landroid/graphics/drawable/Icon;)Landroid/content/pm/ShortcutInfo$Builder;"/> <method name="setIntent(Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;"/> <method name="setIntents([Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;"/> - <method name="setLocusId(Landroid/content/LocusId;)Landroid/content/pm/ShortcutInfo$Builder;" since="29"/> <method name="setLongLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;"/> - <method name="setLongLived(Z)Landroid/content/pm/ShortcutInfo$Builder;" since="29"/> - <method name="setPerson(Landroid/app/Person;)Landroid/content/pm/ShortcutInfo$Builder;" since="29"/> - <method name="setPersons([Landroid/app/Person;)Landroid/content/pm/ShortcutInfo$Builder;" since="29"/> <method name="setRank(I)Landroid/content/pm/ShortcutInfo$Builder;"/> <method name="setShortLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;"/> </class> <class name="android/content/pm/ShortcutManager" since="25"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addDynamicShortcuts(Ljava/util/List;)Z"/> <method name="createShortcutResultIntent(Landroid/content/pm/ShortcutInfo;)Landroid/content/Intent;" since="26"/> <method name="disableShortcuts(Ljava/util/List;)V"/> @@ -11878,6 +11617,7 @@ <class name="android/content/res/AssetManager" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable" since="21"/> + <method name="<init>()V"/> <method name="close()V"/> <method name="getLocales()[Ljava/lang/String;"/> <method name="list(Ljava/lang/String;)[Ljava/lang/String;"/> @@ -11895,6 +11635,8 @@ </class> <class name="android/content/res/AssetManager$AssetInputStream" since="1"> <extends name="java/io/InputStream"/> + <method name="<init>(Landroid/content/res/AssetManager;)V" removed="29"/> + <method name="<init>(Landroid/content/res/AssetManager;J)V" since="29"/> <method name="getAssetInt()I" removed="21"/> </class> <class name="android/content/res/ColorStateList" since="1"> @@ -12032,6 +11774,7 @@ <class name="android/content/res/ObbInfo" since="9"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> <field name="OBB_OVERLAY"/> <field name="filename"/> @@ -12041,6 +11784,7 @@ </class> <class name="android/content/res/ObbScanner" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getObbInfo(Ljava/lang/String;)Landroid/content/res/ObbInfo;"/> </class> <class name="android/content/res/Resources" since="1"> @@ -12050,7 +11794,6 @@ <method name="flushLayoutCache()V"/> <method name="getAnimation(I)Landroid/content/res/XmlResourceParser;"/> <method name="getAssets()Landroid/content/res/AssetManager;"/> - <method name="getAttributeSetSourceResId(Landroid/util/AttributeSet;)I" since="29"/> <method name="getBoolean(I)Z" since="3"/> <method name="getColor(I)I" deprecated="23"/> <method name="getColor(ILandroid/content/res/Resources$Theme;)I" since="23"/> @@ -12065,14 +11808,13 @@ <method name="getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21"/> <method name="getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;" since="15" deprecated="22"/> <method name="getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21"/> - <method name="getFloat(I)F" since="29"/> <method name="getFont(I)Landroid/graphics/Typeface;" since="26"/> <method name="getFraction(III)F" since="3"/> <method name="getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I"/> <method name="getIntArray(I)[I"/> <method name="getInteger(I)I"/> <method name="getLayout(I)Landroid/content/res/XmlResourceParser;"/> - <method name="getMovie(I)Landroid/graphics/Movie;" deprecated="29"/> + <method name="getMovie(I)Landroid/graphics/Movie;"/> <method name="getQuantityString(II)Ljava/lang/String;"/> <method name="getQuantityString(II[Ljava/lang/Object;)Ljava/lang/String;"/> <method name="getQuantityText(II)Ljava/lang/CharSequence;"/> @@ -12100,7 +11842,6 @@ <method name="parseBundleExtra(Ljava/lang/String;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="3"/> <method name="parseBundleExtras(Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;)V" since="3"/> <method name="updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)V" deprecated="25"/> - <field name="ID_NULL" since="29"/> </class> <class name="android/content/res/Resources$NotFoundException" since="1"> <extends name="java/lang/RuntimeException"/> @@ -12110,22 +11851,22 @@ </class> <class name="android/content/res/Resources$Theme" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/content/res/Resources;)V"/> <method name="applyStyle(IZ)V"/> <method name="dump(ILjava/lang/String;Ljava/lang/String;)V"/> - <method name="getAttributeResolutionStack(III)[I" since="29"/> <method name="getChangingConfigurations()I" since="23"/> <method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" since="21"/> - <method name="getExplicitStyle(Landroid/util/AttributeSet;)I" since="29"/> <method name="getResources()Landroid/content/res/Resources;" since="21"/> <method name="obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;"/> <method name="obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;"/> <method name="obtainStyledAttributes([I)Landroid/content/res/TypedArray;"/> - <method name="rebase()V" since="29"/> <method name="resolveAttribute(ILandroid/util/TypedValue;Z)Z"/> <method name="setTo(Landroid/content/res/Resources$Theme;)V"/> </class> <class name="android/content/res/TypedArray" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/res/Resources;)V" since="29"/> <method name="getBoolean(IZ)Z"/> <method name="getChangingConfigurations()I" since="21"/> <method name="getColor(II)I"/> @@ -12147,7 +11888,6 @@ <method name="getPositionDescription()Ljava/lang/String;"/> <method name="getResourceId(II)I"/> <method name="getResources()Landroid/content/res/Resources;"/> - <method name="getSourceResourceId(II)I" since="29"/> <method name="getString(I)Ljava/lang/String;"/> <method name="getText(I)Ljava/lang/CharSequence;"/> <method name="getTextArray(I)[Ljava/lang/CharSequence;"/> @@ -12172,15 +11912,15 @@ <method name="<init>()V"/> <method name="checkPosition()V"/> <method name="getNotificationUri()Landroid/net/Uri;" since="11"/> - <method name="getUpdatedField(I)Ljava/lang/Object;" deprecated="15"/> - <method name="isFieldUpdated(I)Z" deprecated="15"/> + <method name="getUpdatedField(I)Ljava/lang/Object;" deprecated="16"/> + <method name="isFieldUpdated(I)Z" deprecated="16"/> <method name="onChange(Z)V"/> <field name="mClosed" deprecated="23"/> <field name="mContentResolver" deprecated="23"/> <field name="mCurrentRowID" deprecated="16" removed="23"/> <field name="mPos" deprecated="23"/> <field name="mRowIdColumnIndex" deprecated="16" removed="23"/> - <field name="mUpdatedRows" deprecated="15" removed="23"/> + <field name="mUpdatedRows" deprecated="16" removed="23"/> </class> <class name="android/database/AbstractCursor$SelfContentObserver" since="1"> <extends name="android/database/ContentObserver"/> @@ -12190,10 +11930,10 @@ <extends name="android/database/AbstractCursor"/> <method name="<init>()V"/> <method name="hasWindow()Z"/> - <method name="isBlob(I)Z" deprecated="15"/> - <method name="isFloat(I)Z" since="5" deprecated="15"/> - <method name="isLong(I)Z" since="5" deprecated="15"/> - <method name="isString(I)Z" since="5" deprecated="15"/> + <method name="isBlob(I)Z" deprecated="16"/> + <method name="isFloat(I)Z" since="5" deprecated="16"/> + <method name="isLong(I)Z" since="5" deprecated="16"/> + <method name="isString(I)Z" since="5" deprecated="16"/> <method name="setWindow(Landroid/database/CursorWindow;)V"/> <field name="mWindow"/> </class> @@ -12252,7 +11992,6 @@ <method name="getInt(I)I"/> <method name="getLong(I)J"/> <method name="getNotificationUri()Landroid/net/Uri;" since="19"/> - <method name="getNotificationUris()Ljava/util/List;" since="29"/> <method name="getPosition()I"/> <method name="getShort(I)S"/> <method name="getString(I)Ljava/lang/String;"/> @@ -12272,11 +12011,10 @@ <method name="moveToPrevious()Z"/> <method name="registerContentObserver(Landroid/database/ContentObserver;)V"/> <method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V"/> - <method name="requery()Z" deprecated="15"/> + <method name="requery()Z" deprecated="16"/> <method name="respond(Landroid/os/Bundle;)Landroid/os/Bundle;"/> <method name="setExtras(Landroid/os/Bundle;)V" since="23"/> <method name="setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V"/> - <method name="setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;)V" since="29"/> <method name="unregisterContentObserver(Landroid/database/ContentObserver;)V"/> <method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V"/> <field name="FIELD_TYPE_BLOB" since="11"/> @@ -12310,7 +12048,7 @@ <implements name="android/os/Parcelable"/> <method name="<init>(Ljava/lang/String;)V" since="15"/> <method name="<init>(Ljava/lang/String;J)V" since="28"/> - <method name="<init>(Z)V" deprecated="15"/> + <method name="<init>(Z)V" deprecated="16"/> <method name="allocRow()Z"/> <method name="clear()V"/> <method name="close()V" removed="16"/> @@ -12326,11 +12064,11 @@ <method name="getStartPosition()I"/> <method name="getString(II)Ljava/lang/String;"/> <method name="getType(II)I" since="11"/> - <method name="isBlob(II)Z" deprecated="15"/> - <method name="isFloat(II)Z" since="5" deprecated="15"/> - <method name="isLong(II)Z" since="5" deprecated="15"/> - <method name="isNull(II)Z" deprecated="15"/> - <method name="isString(II)Z" since="5" deprecated="15"/> + <method name="isBlob(II)Z" deprecated="16"/> + <method name="isFloat(II)Z" since="5" deprecated="16"/> + <method name="isLong(II)Z" since="5" deprecated="16"/> + <method name="isNull(II)Z" deprecated="16"/> + <method name="isString(II)Z" since="5" deprecated="16"/> <method name="newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;"/> <method name="putBlob([BII)Z"/> <method name="putDouble(DII)Z"/> @@ -12426,22 +12164,22 @@ </class> <class name="android/database/DatabaseUtils$InsertHelper" since="1" deprecated="17"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)V" deprecated="29"/> - <method name="bind(ID)V" deprecated="29"/> - <method name="bind(IF)V" deprecated="29"/> - <method name="bind(II)V" deprecated="29"/> - <method name="bind(IJ)V" deprecated="29"/> - <method name="bind(ILjava/lang/String;)V" deprecated="29"/> - <method name="bind(IZ)V" deprecated="29"/> - <method name="bind(I[B)V" deprecated="29"/> - <method name="bindNull(I)V" deprecated="29"/> - <method name="close()V" deprecated="29"/> - <method name="execute()J" deprecated="29"/> - <method name="getColumnIndex(Ljava/lang/String;)I" deprecated="29"/> - <method name="insert(Landroid/content/ContentValues;)J" deprecated="29"/> - <method name="prepareForInsert()V" deprecated="29"/> - <method name="prepareForReplace()V" deprecated="29"/> - <method name="replace(Landroid/content/ContentValues;)J" deprecated="29"/> + <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)V"/> + <method name="bind(ID)V"/> + <method name="bind(IF)V"/> + <method name="bind(II)V"/> + <method name="bind(IJ)V"/> + <method name="bind(ILjava/lang/String;)V"/> + <method name="bind(IZ)V"/> + <method name="bind(I[B)V"/> + <method name="bindNull(I)V"/> + <method name="close()V"/> + <method name="execute()J"/> + <method name="getColumnIndex(Ljava/lang/String;)I"/> + <method name="insert(Landroid/content/ContentValues;)J"/> + <method name="prepareForInsert()V"/> + <method name="prepareForReplace()V"/> + <method name="replace(Landroid/content/ContentValues;)J"/> <field name="TABLE_INFO_PRAGMA_DEFAULT_INDEX" removed="17"/> </class> <class name="android/database/DefaultDatabaseErrorHandler" since="11"> @@ -12459,6 +12197,8 @@ </class> <class name="android/database/MatrixCursor$RowBuilder" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/database/MatrixCursor;)V" removed="29"/> + <method name="<init>(Landroid/database/MatrixCursor;I)V" since="29"/> <method name="add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;"/> <method name="add(Ljava/lang/String;Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;" since="19"/> </class> @@ -12528,7 +12268,7 @@ <class name="android/database/sqlite/SQLiteCursor" since="1"> <extends name="android/database/AbstractWindowedCursor"/> <method name="<init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" since="11"/> - <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" deprecated="15"/> + <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" deprecated="16"/> <method name="getDatabase()Landroid/database/sqlite/SQLiteDatabase;"/> <method name="setFillWindowForwardOnly(Z)V" since="28"/> <method name="setSelectionArguments([Ljava/lang/String;)V"/> @@ -12543,6 +12283,8 @@ </class> <class name="android/database/sqlite/SQLiteDatabase" since="1"> <extends name="android/database/sqlite/SQLiteClosable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="beginTransaction()V"/> <method name="beginTransactionNonExclusive()V" since="11"/> <method name="beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V" since="5"/> @@ -12563,7 +12305,7 @@ <method name="getMaximumSize()J"/> <method name="getPageSize()J"/> <method name="getPath()Ljava/lang/String;"/> - <method name="getSyncedTables()Ljava/util/Map;" deprecated="15"/> + <method name="getSyncedTables()Ljava/util/Map;" deprecated="16"/> <method name="getVersion()I"/> <method name="inTransaction()Z"/> <method name="insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J"/> @@ -12575,8 +12317,8 @@ <method name="isOpen()Z"/> <method name="isReadOnly()Z"/> <method name="isWriteAheadLoggingEnabled()Z" since="16"/> - <method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;)V" deprecated="15"/> - <method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="15"/> + <method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;)V" deprecated="16"/> + <method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="16"/> <method name="needUpgrade(I)Z"/> <method name="openDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;" since="27"/> <method name="openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;"/> @@ -12608,7 +12350,7 @@ <method name="update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I"/> <method name="updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I" since="8"/> <method name="validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V" since="24"/> - <method name="yieldIfContended()Z" deprecated="15"/> + <method name="yieldIfContended()Z" deprecated="16"/> <method name="yieldIfContendedSafely()Z" since="3"/> <method name="yieldIfContendedSafely(J)Z" since="5"/> <field name="CONFLICT_ABORT" since="8"/> @@ -12631,6 +12373,8 @@ </class> <class name="android/database/sqlite/SQLiteDatabase$OpenParams" since="27"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="getCursorFactory()Landroid/database/sqlite/SQLiteDatabase$CursorFactory;"/> <method name="getErrorHandler()Landroid/database/DatabaseErrorHandler;"/> <method name="getIdleConnectionTimeout()J"/> @@ -12649,7 +12393,7 @@ <method name="removeOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;"/> <method name="setCursorFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;"/> <method name="setErrorHandler(Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;"/> - <method name="setIdleConnectionTimeout(J)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;" deprecated="29"/> + <method name="setIdleConnectionTimeout(J)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;"/> <method name="setJournalMode(Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;" since="28"/> <method name="setLookasideConfig(II)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;"/> <method name="setOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;"/> @@ -12698,7 +12442,6 @@ </class> <class name="android/database/sqlite/SQLiteOpenHelper" since="1"> <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable" since="29"/> <method name="<init>(Landroid/content/Context;Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$OpenParams;)V" since="28"/> <method name="<init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V"/> <method name="<init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)V" since="11"/> @@ -12711,7 +12454,7 @@ <method name="onDowngrade(Landroid/database/sqlite/SQLiteDatabase;II)V" since="11"/> <method name="onOpen(Landroid/database/sqlite/SQLiteDatabase;)V"/> <method name="onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V"/> - <method name="setIdleConnectionTimeout(J)V" since="27" deprecated="29"/> + <method name="setIdleConnectionTimeout(J)V" since="27"/> <method name="setLookasideConfig(II)V" since="27"/> <method name="setOpenParams(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)V" since="28"/> <method name="setWriteAheadLoggingEnabled(Z)V" since="16"/> @@ -12723,6 +12466,8 @@ </class> <class name="android/database/sqlite/SQLiteProgram" since="1"> <extends name="android/database/sqlite/SQLiteClosable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V" since="29"/> <method name="bindAllArgsAsStrings([Ljava/lang/String;)V" since="11"/> <method name="bindBlob(I[B)V"/> <method name="bindDouble(ID)V"/> @@ -12731,21 +12476,23 @@ <method name="bindString(ILjava/lang/String;)V"/> <method name="clearBindings()V"/> <method name="close()V" removed="16"/> - <method name="compile(Ljava/lang/String;Z)V" deprecated="15" removed="16"/> - <method name="getUniqueId()I" deprecated="15"/> + <method name="compile(Ljava/lang/String;Z)V" removed="16"/> + <method name="getUniqueId()I" deprecated="16"/> <method name="native_bind_blob(I[B)V" removed="16"/> <method name="native_bind_double(ID)V" removed="16"/> <method name="native_bind_long(IJ)V" removed="16"/> <method name="native_bind_null(I)V" removed="16"/> <method name="native_bind_string(ILjava/lang/String;)V" removed="16"/> - <method name="native_compile(Ljava/lang/String;)V" deprecated="15" removed="16"/> - <method name="native_finalize()V" deprecated="15" removed="16"/> - <field name="mDatabase" deprecated="15" removed="16"/> - <field name="nHandle" deprecated="15" removed="16"/> - <field name="nStatement" deprecated="15" removed="16"/> + <method name="native_compile(Ljava/lang/String;)V" removed="16"/> + <method name="native_finalize()V" removed="16"/> + <field name="mDatabase" removed="16"/> + <field name="nHandle" removed="16"/> + <field name="nStatement" removed="16"/> </class> <class name="android/database/sqlite/SQLiteQuery" since="1"> <extends name="android/database/sqlite/SQLiteProgram"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Landroid/os/CancellationSignal;)V" since="29"/> </class> <class name="android/database/sqlite/SQLiteQueryBuilder" since="1"> <extends name="java/lang/Object"/> @@ -12753,19 +12500,13 @@ <method name="appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V"/> <method name="appendWhere(Ljava/lang/CharSequence;)V"/> <method name="appendWhereEscapeString(Ljava/lang/String;)V"/> - <method name="appendWhereStandalone(Ljava/lang/CharSequence;)V" since="29"/> <method name="buildQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11"/> - <method name="buildQuery([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> + <method name="buildQuery([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> <method name="buildQueryString(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> <method name="buildUnionQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> <method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11"/> - <method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> - <method name="delete(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)I" since="29"/> - <method name="getCursorFactory()Landroid/database/sqlite/SQLiteDatabase$CursorFactory;" since="29"/> - <method name="getProjectionMap()Ljava/util/Map;" since="29"/> + <method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> <method name="getTables()Ljava/lang/String;"/> - <method name="isDistinct()Z" since="29"/> - <method name="isStrict()Z" since="29"/> <method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;"/> <method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;"/> <method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16"/> @@ -12774,7 +12515,6 @@ <method name="setProjectionMap(Ljava/util/Map;)V"/> <method name="setStrict(Z)V" since="14"/> <method name="setTables(Ljava/lang/String;)V"/> - <method name="update(Landroid/database/sqlite/SQLiteDatabase;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" since="29"/> </class> <class name="android/database/sqlite/SQLiteReadOnlyDatabaseException" since="11"> <extends name="android/database/sqlite/SQLiteException"/> @@ -12783,6 +12523,8 @@ </class> <class name="android/database/sqlite/SQLiteStatement" since="1"> <extends name="android/database/sqlite/SQLiteProgram"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V" since="29"/> <method name="execute()V"/> <method name="executeInsert()J"/> <method name="executeUpdateDelete()I" since="11"/> @@ -13014,12 +12756,16 @@ </class> <class name="android/drm/DrmUtils$ExtendedMetadataParser" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([B)V" since="29"/> <method name="get(Ljava/lang/String;)Ljava/lang/String;"/> <method name="iterator()Ljava/util/Iterator;"/> <method name="keyIterator()Ljava/util/Iterator;"/> </class> <class name="android/drm/ProcessedData" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([BLjava/lang/String;)V" since="29"/> <method name="getAccountId()Ljava/lang/String;"/> <method name="getData()[B"/> <method name="getSubscriptionId()Ljava/lang/String;"/> @@ -13044,6 +12790,7 @@ </class> <class name="android/gesture/GestureLibraries" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="fromFile(Ljava/io/File;)Landroid/gesture/GestureLibrary;"/> <method name="fromFile(Ljava/lang/String;)Landroid/gesture/GestureLibrary;"/> <method name="fromPrivateFile(Landroid/content/Context;Ljava/lang/String;)Landroid/gesture/GestureLibrary;"/> @@ -13179,6 +12926,7 @@ </class> <class name="android/gesture/GestureUtils" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="computeOrientedBoundingBox(Ljava/util/ArrayList;)Landroid/gesture/OrientedBoundingBox;"/> <method name="computeOrientedBoundingBox([F)Landroid/gesture/OrientedBoundingBox;"/> <method name="spatialSampling(Landroid/gesture/Gesture;I)[F"/> @@ -13187,6 +12935,8 @@ </class> <class name="android/gesture/OrientedBoundingBox" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(FFFFF)V" since="29"/> <field name="centerX"/> <field name="centerY"/> <field name="height"/> @@ -13196,6 +12946,8 @@ </class> <class name="android/gesture/Prediction" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;D)V" since="29"/> <field name="name"/> <field name="score"/> </class> @@ -13213,6 +12965,7 @@ <class name="android/graphics/Bitmap" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z"/> <method name="copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;"/> <method name="copyPixelsFromBuffer(Ljava/nio/Buffer;)V" since="3"/> @@ -13234,12 +12987,10 @@ <method name="createBitmap([IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;"/> <method name="createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;"/> <method name="eraseColor(I)V"/> - <method name="eraseColor(J)V" since="29"/> <method name="extractAlpha()Landroid/graphics/Bitmap;"/> <method name="extractAlpha(Landroid/graphics/Paint;[I)Landroid/graphics/Bitmap;"/> <method name="getAllocationByteCount()I" since="19"/> <method name="getByteCount()I" since="12"/> - <method name="getColor(II)Landroid/graphics/Color;" since="29"/> <method name="getColorSpace()Landroid/graphics/ColorSpace;" since="26"/> <method name="getConfig()Landroid/graphics/Bitmap$Config;"/> <method name="getDensity()I" since="4"/> @@ -13265,7 +13016,6 @@ <method name="reconfigure(IILandroid/graphics/Bitmap$Config;)V" since="19"/> <method name="recycle()V"/> <method name="sameAs(Landroid/graphics/Bitmap;)Z" since="12"/> - <method name="setColorSpace(Landroid/graphics/ColorSpace;)V" since="29"/> <method name="setConfig(Landroid/graphics/Bitmap$Config;)V" since="19"/> <method name="setDensity(I)V" since="4"/> <method name="setHasAlpha(Z)V" since="12"/> @@ -13275,7 +13025,6 @@ <method name="setPixels([IIIIIII)V"/> <method name="setPremultiplied(Z)V" since="19"/> <method name="setWidth(I)V" since="19"/> - <method name="wrapHardwareBuffer(Landroid/hardware/HardwareBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;" since="29"/> <field name="CREATOR"/> <field name="DENSITY_NONE" since="4"/> </class> @@ -13292,7 +13041,7 @@ <method name="valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$Config;"/> <method name="values()[Landroid/graphics/Bitmap$Config;"/> <field name="ALPHA_8"/> - <field name="ARGB_4444" deprecated="29"/> + <field name="ARGB_4444" deprecated="28"/> <field name="ARGB_8888"/> <field name="HARDWARE" since="26"/> <field name="RGBA_F16" since="26"/> @@ -13342,6 +13091,8 @@ </class> <class name="android/graphics/BitmapRegionDecoder" since="10"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> <method name="decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;"/> <method name="getHeight()I"/> <method name="getWidth()I"/> @@ -13356,46 +13107,6 @@ <extends name="android/graphics/Shader"/> <method name="<init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V"/> </class> - <class name="android/graphics/BlendMode" since="29"> - <extends name="java/lang/Enum"/> - <method name="valueOf(Ljava/lang/String;)Landroid/graphics/BlendMode;"/> - <method name="values()[Landroid/graphics/BlendMode;"/> - <field name="CLEAR"/> - <field name="COLOR"/> - <field name="COLOR_BURN"/> - <field name="COLOR_DODGE"/> - <field name="DARKEN"/> - <field name="DIFFERENCE"/> - <field name="DST"/> - <field name="DST_ATOP"/> - <field name="DST_IN"/> - <field name="DST_OUT"/> - <field name="DST_OVER"/> - <field name="EXCLUSION"/> - <field name="HARD_LIGHT"/> - <field name="HUE"/> - <field name="LIGHTEN"/> - <field name="LUMINOSITY"/> - <field name="MODULATE"/> - <field name="MULTIPLY"/> - <field name="OVERLAY"/> - <field name="PLUS"/> - <field name="SATURATION"/> - <field name="SCREEN"/> - <field name="SOFT_LIGHT"/> - <field name="SRC"/> - <field name="SRC_ATOP"/> - <field name="SRC_IN"/> - <field name="SRC_OUT"/> - <field name="SRC_OVER"/> - <field name="XOR"/> - </class> - <class name="android/graphics/BlendModeColorFilter" since="29"> - <extends name="android/graphics/ColorFilter"/> - <method name="<init>(ILandroid/graphics/BlendMode;)V"/> - <method name="getColor()I"/> - <method name="getMode()Landroid/graphics/BlendMode;"/> - </class> <class name="android/graphics/BlurMaskFilter" since="1"> <extends name="android/graphics/MaskFilter"/> <method name="<init>(FLandroid/graphics/BlurMaskFilter$Blur;)V"/> @@ -13449,7 +13160,6 @@ <method name="clipRegion(Landroid/graphics/Region;)Z" deprecated="21" removed="26"/> <method name="clipRegion(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" deprecated="21" removed="26"/> <method name="concat(Landroid/graphics/Matrix;)V"/> - <method name="disableZ()V" since="29"/> <method name="drawARGB(IIII)V"/> <method name="drawArc(FFFFFFZLandroid/graphics/Paint;)V" since="21"/> <method name="drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V"/> @@ -13462,12 +13172,7 @@ <method name="drawBitmapMesh(Landroid/graphics/Bitmap;II[FI[IILandroid/graphics/Paint;)V"/> <method name="drawCircle(FFFLandroid/graphics/Paint;)V"/> <method name="drawColor(I)V"/> - <method name="drawColor(ILandroid/graphics/BlendMode;)V" since="29"/> <method name="drawColor(ILandroid/graphics/PorterDuff$Mode;)V"/> - <method name="drawColor(J)V" since="29"/> - <method name="drawColor(JLandroid/graphics/BlendMode;)V" since="29"/> - <method name="drawDoubleRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/RectF;FFLandroid/graphics/Paint;)V" since="29"/> - <method name="drawDoubleRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/RectF;[FLandroid/graphics/Paint;)V" since="29"/> <method name="drawLine(FFFFLandroid/graphics/Paint;)V"/> <method name="drawLines([FIILandroid/graphics/Paint;)V"/> <method name="drawLines([FLandroid/graphics/Paint;)V"/> @@ -13487,7 +13192,6 @@ <method name="drawRect(FFFFLandroid/graphics/Paint;)V"/> <method name="drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V"/> <method name="drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V"/> - <method name="drawRenderNode(Landroid/graphics/RenderNode;)V" since="29"/> <method name="drawRoundRect(FFFFFFLandroid/graphics/Paint;)V" since="21"/> <method name="drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V"/> <method name="drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V"/> @@ -13496,11 +13200,9 @@ <method name="drawText([CIIFFLandroid/graphics/Paint;)V"/> <method name="drawTextOnPath(Ljava/lang/String;Landroid/graphics/Path;FFLandroid/graphics/Paint;)V"/> <method name="drawTextOnPath([CIILandroid/graphics/Path;FFLandroid/graphics/Paint;)V"/> - <method name="drawTextRun(Landroid/graphics/text/MeasuredText;IIIIFFZLandroid/graphics/Paint;)V" since="29"/> <method name="drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V" since="23"/> <method name="drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V" since="23"/> <method name="drawVertices(Landroid/graphics/Canvas$VertexMode;I[FI[FI[II[SIILandroid/graphics/Paint;)V"/> - <method name="enableZ()V" since="29"/> <method name="freeGlCaches()V" removed="11"/> <method name="getClipBounds()Landroid/graphics/Rect;"/> <method name="getClipBounds(Landroid/graphics/Rect;)Z"/> @@ -13665,6 +13367,8 @@ </class> <class name="android/graphics/ColorSpace" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V" since="29"/> <method name="adapt(Landroid/graphics/ColorSpace;[F)Landroid/graphics/ColorSpace;"/> <method name="adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace;"/> <method name="connect(Landroid/graphics/ColorSpace;)Landroid/graphics/ColorSpace$Connector;"/> @@ -13707,6 +13411,8 @@ </class> <class name="android/graphics/ColorSpace$Connector" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$RenderIntent;)V" since="29"/> <method name="getDestination()Landroid/graphics/ColorSpace;"/> <method name="getRenderIntent()Landroid/graphics/ColorSpace$RenderIntent;"/> <method name="getSource()Landroid/graphics/ColorSpace;"/> @@ -13795,9 +13501,8 @@ </class> <class name="android/graphics/ComposeShader" since="1"> <extends name="android/graphics/Shader"/> - <method name="<init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/BlendMode;)V" since="29"/> <method name="<init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/PorterDuff$Mode;)V"/> - <method name="<init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/Xfermode;)V" deprecated="29"/> + <method name="<init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/Xfermode;)V"/> </class> <class name="android/graphics/CornerPathEffect" since="1"> <extends name="android/graphics/PathEffect"/> @@ -13819,44 +13524,16 @@ <extends name="android/graphics/MaskFilter"/> <method name="<init>([FFFF)V" deprecated="28"/> </class> - <class name="android/graphics/HardwareRenderer" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="clearContent()V"/> - <method name="createRenderRequest()Landroid/graphics/HardwareRenderer$FrameRenderRequest;"/> - <method name="destroy()V"/> - <method name="isOpaque()Z"/> - <method name="notifyFramePending()V"/> - <method name="setContentRoot(Landroid/graphics/RenderNode;)V"/> - <method name="setLightSourceAlpha(FF)V"/> - <method name="setLightSourceGeometry(FFFF)V"/> - <method name="setName(Ljava/lang/String;)V"/> - <method name="setOpaque(Z)V"/> - <method name="setSurface(Landroid/view/Surface;)V"/> - <method name="start()V"/> - <method name="stop()V"/> - <field name="SYNC_CONTEXT_IS_STOPPED"/> - <field name="SYNC_FRAME_DROPPED"/> - <field name="SYNC_LOST_SURFACE_REWARD_IF_FOUND"/> - <field name="SYNC_OK"/> - <field name="SYNC_REDRAW_REQUESTED"/> - </class> - <class name="android/graphics/HardwareRenderer$FrameRenderRequest" since="29"> - <extends name="java/lang/Object"/> - <method name="setFrameCommitCallback(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Landroid/graphics/HardwareRenderer$FrameRenderRequest;"/> - <method name="setVsyncTime(J)Landroid/graphics/HardwareRenderer$FrameRenderRequest;"/> - <method name="setWaitForPresent(Z)Landroid/graphics/HardwareRenderer$FrameRenderRequest;"/> - <method name="syncAndDraw()I"/> - </class> <class name="android/graphics/ImageDecoder" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JIIZZ)V" since="29"/> <method name="createSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/graphics/ImageDecoder$Source;"/> <method name="createSource(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/ImageDecoder$Source;"/> <method name="createSource(Landroid/content/res/Resources;I)Landroid/graphics/ImageDecoder$Source;"/> <method name="createSource(Ljava/io/File;)Landroid/graphics/ImageDecoder$Source;"/> <method name="createSource(Ljava/nio/ByteBuffer;)Landroid/graphics/ImageDecoder$Source;"/> - <method name="createSource(Ljava/util/concurrent/Callable;)Landroid/graphics/ImageDecoder$Source;" since="29"/> <method name="decodeBitmap(Landroid/graphics/ImageDecoder$Source;)Landroid/graphics/Bitmap;"/> <method name="decodeBitmap(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap;"/> <method name="decodeDrawable(Landroid/graphics/ImageDecoder$Source;)Landroid/graphics/drawable/Drawable;"/> @@ -13867,7 +13544,6 @@ <method name="getOnPartialImageListener()Landroid/graphics/ImageDecoder$OnPartialImageListener;"/> <method name="getPostProcessor()Landroid/graphics/PostProcessor;"/> <method name="isDecodeAsAlphaMaskEnabled()Z"/> - <method name="isMimeTypeSupported(Ljava/lang/String;)Z" since="29"/> <method name="isMutableRequired()Z"/> <method name="isUnpremultipliedRequired()Z"/> <method name="setAllocator(I)V"/> @@ -13890,6 +13566,8 @@ </class> <class name="android/graphics/ImageDecoder$DecodeException" since="28"> <extends name="java/io/IOException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/Throwable;Landroid/graphics/ImageDecoder$Source;)V" since="29"/> <method name="getError()I"/> <method name="getSource()Landroid/graphics/ImageDecoder$Source;"/> <field name="SOURCE_EXCEPTION"/> @@ -13898,6 +13576,8 @@ </class> <class name="android/graphics/ImageDecoder$ImageInfo" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/graphics/ImageDecoder;)V" since="29"/> <method name="getColorSpace()Landroid/graphics/ColorSpace;"/> <method name="getMimeType()Ljava/lang/String;"/> <method name="getSize()Landroid/util/Size;"/> @@ -13913,17 +13593,16 @@ </class> <class name="android/graphics/ImageDecoder$Source" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/graphics/ImageFormat" since="8"> <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="getBitsPerPixel(I)I"/> <field name="DEPTH16" since="23"/> - <field name="DEPTH_JPEG" since="29"/> <field name="DEPTH_POINT_CLOUD" since="23"/> <field name="FLEX_RGBA_8888" since="23"/> <field name="FLEX_RGB_888" since="23"/> - <field name="HEIC" since="29"/> <field name="JPEG"/> <field name="NV16"/> <field name="NV21"/> @@ -13934,29 +13613,12 @@ <field name="RAW_SENSOR" since="21"/> <field name="RGB_565"/> <field name="UNKNOWN"/> - <field name="Y8" since="29"/> <field name="YUV_420_888" since="19"/> <field name="YUV_422_888" since="23"/> <field name="YUV_444_888" since="23"/> <field name="YUY2"/> <field name="YV12" since="9"/> </class> - <class name="android/graphics/Insets" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="add(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;"/> - <method name="max(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;"/> - <method name="min(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;"/> - <method name="of(IIII)Landroid/graphics/Insets;"/> - <method name="of(Landroid/graphics/Rect;)Landroid/graphics/Insets;"/> - <method name="subtract(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;"/> - <field name="CREATOR"/> - <field name="NONE"/> - <field name="bottom"/> - <field name="left"/> - <field name="right"/> - <field name="top"/> - </class> <class name="android/graphics/Interpolator" since="1"> <extends name="java/lang/Object"/> <method name="<init>(I)V"/> @@ -13994,9 +13656,7 @@ <class name="android/graphics/LinearGradient" since="1"> <extends name="android/graphics/Shader"/> <method name="<init>(FFFFIILandroid/graphics/Shader$TileMode;)V"/> - <method name="<init>(FFFFJJLandroid/graphics/Shader$TileMode;)V" since="29"/> <method name="<init>(FFFF[I[FLandroid/graphics/Shader$TileMode;)V"/> - <method name="<init>(FFFF[J[FLandroid/graphics/Shader$TileMode;)V" since="29"/> </class> <class name="android/graphics/MaskFilter" since="1"> <extends name="java/lang/Object"/> @@ -14073,16 +13733,18 @@ </class> <class name="android/graphics/Movie" since="1" deprecated="28"> <extends name="java/lang/Object"/> - <method name="decodeByteArray([BII)Landroid/graphics/Movie;" deprecated="29"/> - <method name="decodeFile(Ljava/lang/String;)Landroid/graphics/Movie;" deprecated="29"/> - <method name="decodeStream(Ljava/io/InputStream;)Landroid/graphics/Movie;" deprecated="29"/> - <method name="draw(Landroid/graphics/Canvas;FF)V" deprecated="29"/> - <method name="draw(Landroid/graphics/Canvas;FFLandroid/graphics/Paint;)V" deprecated="29"/> - <method name="duration()I" deprecated="29"/> - <method name="height()I" deprecated="29"/> - <method name="isOpaque()Z" deprecated="29"/> - <method name="setTime(I)Z" deprecated="29"/> - <method name="width()I" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> + <method name="decodeByteArray([BII)Landroid/graphics/Movie;"/> + <method name="decodeFile(Ljava/lang/String;)Landroid/graphics/Movie;"/> + <method name="decodeStream(Ljava/io/InputStream;)Landroid/graphics/Movie;"/> + <method name="draw(Landroid/graphics/Canvas;FF)V"/> + <method name="draw(Landroid/graphics/Canvas;FFLandroid/graphics/Paint;)V"/> + <method name="duration()I"/> + <method name="height()I"/> + <method name="isOpaque()Z"/> + <method name="setTime(I)Z"/> + <method name="width()I"/> </class> <class name="android/graphics/NinePatch" since="1"> <extends name="java/lang/Object"/> @@ -14136,11 +13798,8 @@ <method name="descent()F"/> <method name="equalsForTextMeasurement(Landroid/graphics/Paint;)Z" since="28"/> <method name="getAlpha()I"/> - <method name="getBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getColor()I"/> <method name="getColorFilter()Landroid/graphics/ColorFilter;"/> - <method name="getColorLong()J" since="29"/> - <method name="getEndHyphenEdit()I" since="29"/> <method name="getFillPath(Landroid/graphics/Path;Landroid/graphics/Path;)Z"/> <method name="getFlags()I"/> <method name="getFontFeatureSettings()Ljava/lang/String;" since="21"/> @@ -14160,30 +13819,18 @@ <method name="getRunAdvance(Ljava/lang/CharSequence;IIIIZI)F" since="23"/> <method name="getRunAdvance([CIIIIZI)F" since="23"/> <method name="getShader()Landroid/graphics/Shader;"/> - <method name="getShadowLayerColor()I" since="29"/> - <method name="getShadowLayerColorLong()J" since="29"/> - <method name="getShadowLayerDx()F" since="29"/> - <method name="getShadowLayerDy()F" since="29"/> - <method name="getShadowLayerRadius()F" since="29"/> - <method name="getStartHyphenEdit()I" since="29"/> - <method name="getStrikeThruPosition()F" since="29"/> - <method name="getStrikeThruThickness()F" since="29"/> <method name="getStrokeCap()Landroid/graphics/Paint$Cap;"/> <method name="getStrokeJoin()Landroid/graphics/Paint$Join;"/> <method name="getStrokeMiter()F"/> <method name="getStrokeWidth()F"/> <method name="getStyle()Landroid/graphics/Paint$Style;"/> <method name="getTextAlign()Landroid/graphics/Paint$Align;"/> - <method name="getTextBounds(Ljava/lang/CharSequence;IILandroid/graphics/Rect;)V" since="29"/> <method name="getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V"/> <method name="getTextBounds([CIILandroid/graphics/Rect;)V"/> <method name="getTextLocale()Ljava/util/Locale;" since="17"/> <method name="getTextLocales()Landroid/os/LocaleList;" since="24"/> <method name="getTextPath(Ljava/lang/String;IIFFLandroid/graphics/Path;)V"/> <method name="getTextPath([CIIFFLandroid/graphics/Path;)V"/> - <method name="getTextRunAdvances([CIIIIZ[FI)F" since="29"/> - <method name="getTextRunCursor(Ljava/lang/CharSequence;IIZII)I" since="29"/> - <method name="getTextRunCursor([CIIZII)I" since="29"/> <method name="getTextScaleX()F"/> <method name="getTextSize()F"/> <method name="getTextSkewX()F"/> @@ -14192,9 +13839,6 @@ <method name="getTextWidths(Ljava/lang/String;[F)I"/> <method name="getTextWidths([CII[F)I"/> <method name="getTypeface()Landroid/graphics/Typeface;"/> - <method name="getUnderlinePosition()F" since="29"/> - <method name="getUnderlineThickness()F" since="29"/> - <method name="getWordSpacing()F" since="29"/> <method name="getXfermode()Landroid/graphics/Xfermode;"/> <method name="hasGlyph(Ljava/lang/String;)Z" since="23"/> <method name="isAntiAlias()Z"/> @@ -14215,13 +13859,10 @@ <method name="setARGB(IIII)V"/> <method name="setAlpha(I)V"/> <method name="setAntiAlias(Z)V"/> - <method name="setBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setColor(I)V"/> - <method name="setColor(J)V" since="29"/> <method name="setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;"/> <method name="setDither(Z)V"/> <method name="setElegantTextHeight(Z)V" since="21"/> - <method name="setEndHyphenEdit(I)V" since="29"/> <method name="setFakeBoldText(Z)V"/> <method name="setFilterBitmap(Z)V"/> <method name="setFlags(I)V"/> @@ -14235,8 +13876,6 @@ <method name="setRasterizer(Landroid/graphics/Rasterizer;)Landroid/graphics/Rasterizer;" deprecated="21" removed="26"/> <method name="setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;"/> <method name="setShadowLayer(FFFI)V"/> - <method name="setShadowLayer(FFFJ)V" since="29"/> - <method name="setStartHyphenEdit(I)V" since="29"/> <method name="setStrikeThruText(Z)V"/> <method name="setStrokeCap(Landroid/graphics/Paint$Cap;)V"/> <method name="setStrokeJoin(Landroid/graphics/Paint$Join;)V"/> @@ -14252,32 +13891,16 @@ <method name="setTextSkewX(F)V"/> <method name="setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;"/> <method name="setUnderlineText(Z)V"/> - <method name="setWordSpacing(F)V" since="29"/> <method name="setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;"/> <field name="ANTI_ALIAS_FLAG"/> - <field name="CURSOR_AFTER" since="29"/> - <field name="CURSOR_AT" since="29"/> - <field name="CURSOR_AT_OR_AFTER" since="29"/> - <field name="CURSOR_AT_OR_BEFORE" since="29"/> - <field name="CURSOR_BEFORE" since="29"/> <field name="DEV_KERN_TEXT_FLAG"/> <field name="DITHER_FLAG"/> <field name="EMBEDDED_BITMAP_TEXT_FLAG" since="19"/> - <field name="END_HYPHEN_EDIT_INSERT_ARMENIAN_HYPHEN" since="29"/> - <field name="END_HYPHEN_EDIT_INSERT_HYPHEN" since="29"/> - <field name="END_HYPHEN_EDIT_INSERT_MAQAF" since="29"/> - <field name="END_HYPHEN_EDIT_INSERT_UCAS_HYPHEN" since="29"/> - <field name="END_HYPHEN_EDIT_INSERT_ZWJ_AND_HYPHEN" since="29"/> - <field name="END_HYPHEN_EDIT_NO_EDIT" since="29"/> - <field name="END_HYPHEN_EDIT_REPLACE_WITH_HYPHEN" since="29"/> <field name="FAKE_BOLD_TEXT_FLAG"/> <field name="FILTER_BITMAP_FLAG"/> <field name="HINTING_OFF" since="14"/> <field name="HINTING_ON" since="14"/> <field name="LINEAR_TEXT_FLAG"/> - <field name="START_HYPHEN_EDIT_INSERT_HYPHEN" since="29"/> - <field name="START_HYPHEN_EDIT_INSERT_ZWJ" since="29"/> - <field name="START_HYPHEN_EDIT_NO_EDIT" since="29"/> <field name="STRIKE_THRU_TEXT_FLAG"/> <field name="SUBPIXEL_TEXT_FLAG"/> <field name="UNDERLINE_TEXT_FLAG"/> @@ -14448,13 +14071,13 @@ <method name="<init>()V"/> <method name="<init>(Landroid/graphics/Picture;)V"/> <method name="beginRecording(II)Landroid/graphics/Canvas;"/> - <method name="createFromStream(Ljava/io/InputStream;)Landroid/graphics/Picture;" deprecated="18" removed="29"/> + <method name="createFromStream(Ljava/io/InputStream;)Landroid/graphics/Picture;" deprecated="18"/> <method name="draw(Landroid/graphics/Canvas;)V"/> <method name="endRecording()V"/> <method name="getHeight()I"/> <method name="getWidth()I"/> <method name="requiresHardwareAcceleration()Z" since="28"/> - <method name="writeToStream(Ljava/io/OutputStream;)V" deprecated="18" removed="29"/> + <method name="writeToStream(Ljava/io/OutputStream;)V" deprecated="18"/> </class> <class name="android/graphics/PixelFormat" since="1"> <extends name="java/lang/Object"/> @@ -14462,7 +14085,7 @@ <method name="formatHasAlpha(I)Z"/> <method name="getPixelFormatInfo(ILandroid/graphics/PixelFormat;)V"/> <field name="A_8" deprecated="19"/> - <field name="JPEG" deprecated="15"/> + <field name="JPEG" deprecated="16"/> <field name="LA_88" deprecated="16"/> <field name="L_8" deprecated="19"/> <field name="OPAQUE"/> @@ -14478,9 +14101,9 @@ <field name="TRANSLUCENT"/> <field name="TRANSPARENT"/> <field name="UNKNOWN"/> - <field name="YCbCr_420_SP" deprecated="15"/> - <field name="YCbCr_422_I" since="5" deprecated="15"/> - <field name="YCbCr_422_SP" deprecated="15"/> + <field name="YCbCr_420_SP" deprecated="16"/> + <field name="YCbCr_422_I" since="5" deprecated="16"/> + <field name="YCbCr_422_SP" deprecated="16"/> <field name="bitsPerPixel"/> <field name="bytesPerPixel"/> </class> @@ -14563,19 +14186,12 @@ <class name="android/graphics/RadialGradient" since="1"> <extends name="android/graphics/Shader"/> <method name="<init>(FFFIILandroid/graphics/Shader$TileMode;)V"/> - <method name="<init>(FFFJJLandroid/graphics/Shader$TileMode;)V" since="29"/> <method name="<init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V"/> - <method name="<init>(FFF[J[FLandroid/graphics/Shader$TileMode;)V" since="29"/> </class> <class name="android/graphics/Rasterizer" since="1" deprecated="21" removed="26"> <extends name="java/lang/Object"/> <method name="<init>()V"/> </class> - <class name="android/graphics/RecordingCanvas" since="29"> - <extends name="android/graphics/Canvas"/> - <method name="drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V"/> - <method name="drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/RectF;Landroid/graphics/Paint;)V"/> - </class> <class name="android/graphics/Rect" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -14709,77 +14325,6 @@ <method name="<init>(Landroid/graphics/Region;)V"/> <method name="next(Landroid/graphics/Rect;)Z"/> </class> - <class name="android/graphics/RenderNode" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Ljava/lang/String;)V"/> - <method name="beginRecording()Landroid/graphics/RecordingCanvas;"/> - <method name="beginRecording(II)Landroid/graphics/RecordingCanvas;"/> - <method name="computeApproximateMemoryUsage()J"/> - <method name="discardDisplayList()V"/> - <method name="endRecording()V"/> - <method name="getAlpha()F"/> - <method name="getAmbientShadowColor()I"/> - <method name="getBottom()I"/> - <method name="getCameraDistance()F"/> - <method name="getClipToBounds()Z"/> - <method name="getClipToOutline()Z"/> - <method name="getElevation()F"/> - <method name="getHeight()I"/> - <method name="getInverseMatrix(Landroid/graphics/Matrix;)V"/> - <method name="getLeft()I"/> - <method name="getMatrix(Landroid/graphics/Matrix;)V"/> - <method name="getPivotX()F"/> - <method name="getPivotY()F"/> - <method name="getRight()I"/> - <method name="getRotationX()F"/> - <method name="getRotationY()F"/> - <method name="getRotationZ()F"/> - <method name="getScaleX()F"/> - <method name="getScaleY()F"/> - <method name="getSpotShadowColor()I"/> - <method name="getTop()I"/> - <method name="getTranslationX()F"/> - <method name="getTranslationY()F"/> - <method name="getTranslationZ()F"/> - <method name="getUniqueId()J"/> - <method name="getUseCompositingLayer()Z"/> - <method name="getWidth()I"/> - <method name="hasDisplayList()Z"/> - <method name="hasIdentityMatrix()Z"/> - <method name="hasOverlappingRendering()Z"/> - <method name="hasShadow()Z"/> - <method name="isForceDarkAllowed()Z"/> - <method name="isPivotExplicitlySet()Z"/> - <method name="offsetLeftAndRight(I)Z"/> - <method name="offsetTopAndBottom(I)Z"/> - <method name="resetPivot()Z"/> - <method name="setAlpha(F)Z"/> - <method name="setAmbientShadowColor(I)Z"/> - <method name="setCameraDistance(F)Z"/> - <method name="setClipRect(Landroid/graphics/Rect;)Z"/> - <method name="setClipToBounds(Z)Z"/> - <method name="setClipToOutline(Z)Z"/> - <method name="setElevation(F)Z"/> - <method name="setForceDarkAllowed(Z)Z"/> - <method name="setHasOverlappingRendering(Z)Z"/> - <method name="setOutline(Landroid/graphics/Outline;)Z"/> - <method name="setPivotX(F)Z"/> - <method name="setPivotY(F)Z"/> - <method name="setPosition(IIII)Z"/> - <method name="setPosition(Landroid/graphics/Rect;)Z"/> - <method name="setProjectBackwards(Z)Z"/> - <method name="setProjectionReceiver(Z)Z"/> - <method name="setRotationX(F)Z"/> - <method name="setRotationY(F)Z"/> - <method name="setRotationZ(F)Z"/> - <method name="setScaleX(F)Z"/> - <method name="setScaleY(F)Z"/> - <method name="setSpotShadowColor(I)Z"/> - <method name="setTranslationX(F)Z"/> - <method name="setTranslationY(F)Z"/> - <method name="setTranslationZ(F)Z"/> - <method name="setUseCompositingLayer(ZLandroid/graphics/Paint;)Z"/> - </class> <class name="android/graphics/Shader" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V" deprecated="26"/> @@ -14821,18 +14366,18 @@ </class> <class name="android/graphics/SurfaceTexture$OutOfResourcesException" since="11" deprecated="19"> <extends name="java/lang/Exception"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Ljava/lang/String;)V"/> </class> <class name="android/graphics/SweepGradient" since="1"> <extends name="android/graphics/Shader"/> <method name="<init>(FFII)V"/> - <method name="<init>(FFJJ)V" since="29"/> <method name="<init>(FF[I[F)V"/> - <method name="<init>(FF[J[F)V" since="29"/> </class> <class name="android/graphics/Typeface" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> <method name="create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;"/> <method name="create(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface;" since="28"/> <method name="create(Ljava/lang/String;I)Landroid/graphics/Typeface;"/> @@ -14868,15 +14413,6 @@ <method name="setTtcIndex(I)Landroid/graphics/Typeface$Builder;"/> <method name="setWeight(I)Landroid/graphics/Typeface$Builder;"/> </class> - <class name="android/graphics/Typeface$CustomFallbackBuilder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/graphics/fonts/FontFamily;)V"/> - <method name="addCustomFallback(Landroid/graphics/fonts/FontFamily;)Landroid/graphics/Typeface$CustomFallbackBuilder;"/> - <method name="build()Landroid/graphics/Typeface;"/> - <method name="getMaxCustomFallbackCount()I"/> - <method name="setStyle(Landroid/graphics/fonts/FontStyle;)Landroid/graphics/Typeface$CustomFallbackBuilder;"/> - <method name="setSystemFallback(Ljava/lang/String;)Landroid/graphics/Typeface$CustomFallbackBuilder;"/> - </class> <class name="android/graphics/Xfermode" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -14958,14 +14494,14 @@ </class> <class name="android/graphics/drawable/BitmapDrawable" since="1"> <extends name="android/graphics/drawable/Drawable"/> - <method name="<init>()V" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> <method name="<init>(Landroid/content/res/Resources;)V" since="4" deprecated="18"/> <method name="<init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V" since="4"/> <method name="<init>(Landroid/content/res/Resources;Ljava/io/InputStream;)V" since="5"/> <method name="<init>(Landroid/content/res/Resources;Ljava/lang/String;)V" since="5"/> - <method name="<init>(Landroid/graphics/Bitmap;)V" deprecated="15"/> - <method name="<init>(Ljava/io/InputStream;)V" deprecated="15"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="15"/> + <method name="<init>(Landroid/graphics/Bitmap;)V" deprecated="16"/> + <method name="<init>(Ljava/io/InputStream;)V" deprecated="16"/> + <method name="<init>(Ljava/lang/String;)V" deprecated="16"/> <method name="getBitmap()Landroid/graphics/Bitmap;"/> <method name="getGravity()I"/> <method name="getPaint()Landroid/graphics/Paint;"/> @@ -14999,16 +14535,6 @@ <method name="getColor()I" since="11"/> <method name="setColor(I)V" since="11"/> </class> - <class name="android/graphics/drawable/ColorStateListDrawable" since="29"> - <extends name="android/graphics/drawable/Drawable"/> - <implements name="android/graphics/drawable/Drawable$Callback"/> - <method name="<init>()V"/> - <method name="<init>(Landroid/content/res/ColorStateList;)V"/> - <method name="clearAlpha()V"/> - <method name="getColorStateList()Landroid/content/res/ColorStateList;"/> - <method name="hasFocusStateSpecified()Z"/> - <method name="setColorStateList(Landroid/content/res/ColorStateList;)V"/> - </class> <class name="android/graphics/drawable/Drawable" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -15041,8 +14567,7 @@ <method name="getLevel()I"/> <method name="getMinimumHeight()I"/> <method name="getMinimumWidth()I"/> - <method name="getOpacity()I" deprecated="29"/> - <method name="getOpticalInsets()Landroid/graphics/Insets;" since="29"/> + <method name="getOpacity()I"/> <method name="getOutline(Landroid/graphics/Outline;)V" since="21"/> <method name="getPadding(Landroid/graphics/Rect;)Z"/> <method name="getState()[I"/> @@ -15052,7 +14577,6 @@ <method name="invalidateSelf()V"/> <method name="isAutoMirrored()Z" since="19"/> <method name="isFilterBitmap()Z" since="23"/> - <method name="isProjected()Z" since="29"/> <method name="isStateful()Z"/> <method name="isVisible()Z"/> <method name="jumpToCurrentState()V" since="11"/> @@ -15069,7 +14593,7 @@ <method name="setBounds(Landroid/graphics/Rect;)V"/> <method name="setCallback(Landroid/graphics/drawable/Drawable$Callback;)V"/> <method name="setChangingConfigurations(I)V"/> - <method name="setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V" deprecated="29"/> + <method name="setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V"/> <method name="setColorFilter(Landroid/graphics/ColorFilter;)V"/> <method name="setDither(Z)V" deprecated="23"/> <method name="setFilterBitmap(Z)V"/> @@ -15079,7 +14603,6 @@ <method name="setLevel(I)Z"/> <method name="setState([I)Z"/> <method name="setTint(I)V" since="21"/> - <method name="setTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setVisible(ZZ)Z"/> @@ -15111,6 +14634,8 @@ </class> <class name="android/graphics/drawable/DrawableContainer$DrawableContainerState" since="1"> <extends name="android/graphics/drawable/Drawable$ConstantState"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V" since="29"/> <method name="addChild(Landroid/graphics/drawable/Drawable;)I"/> <method name="canConstantState()Z"/> <method name="computeConstantSize()V" since="11"/> @@ -15152,34 +14677,24 @@ <method name="getGradientCenterY()F" since="24"/> <method name="getGradientRadius()F" since="21"/> <method name="getGradientType()I" since="24"/> - <method name="getInnerRadius()I" since="29"/> - <method name="getInnerRadiusRatio()F" since="29"/> <method name="getOrientation()Landroid/graphics/drawable/GradientDrawable$Orientation;" since="16"/> <method name="getShape()I" since="24"/> - <method name="getThickness()I" since="29"/> - <method name="getThicknessRatio()F" since="29"/> <method name="getUseLevel()Z" since="24"/> <method name="setColor(I)V"/> <method name="setColor(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setColors([I)V" since="16"/> - <method name="setColors([I[F)V" since="29"/> <method name="setCornerRadii([F)V"/> <method name="setCornerRadius(F)V"/> <method name="setGradientCenter(FF)V"/> <method name="setGradientRadius(F)V"/> <method name="setGradientType(I)V"/> - <method name="setInnerRadius(I)V" since="29"/> - <method name="setInnerRadiusRatio(F)V" since="29"/> <method name="setOrientation(Landroid/graphics/drawable/GradientDrawable$Orientation;)V" since="16"/> - <method name="setPadding(IIII)V" since="29"/> <method name="setShape(I)V"/> <method name="setSize(II)V"/> <method name="setStroke(II)V"/> <method name="setStroke(IIFF)V"/> <method name="setStroke(ILandroid/content/res/ColorStateList;)V" since="21"/> <method name="setStroke(ILandroid/content/res/ColorStateList;FF)V" since="21"/> - <method name="setThickness(I)V" since="29"/> - <method name="setThicknessRatio(F)V" since="29"/> <method name="setUseLevel(Z)V"/> <field name="LINE"/> <field name="LINEAR_GRADIENT"/> @@ -15205,6 +14720,8 @@ <class name="android/graphics/drawable/Icon" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="createWithAdaptiveBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon;" since="26"/> <method name="createWithBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon;"/> <method name="createWithContentUri(Landroid/net/Uri;)Landroid/graphics/drawable/Icon;"/> @@ -15221,7 +14738,6 @@ <method name="loadDrawableAsync(Landroid/content/Context;Landroid/graphics/drawable/Icon$OnDrawableLoadedListener;Landroid/os/Handler;)V"/> <method name="loadDrawableAsync(Landroid/content/Context;Landroid/os/Message;)V"/> <method name="setTint(I)Landroid/graphics/drawable/Icon;"/> - <method name="setTintBlendMode(Landroid/graphics/BlendMode;)Landroid/graphics/drawable/Icon;" since="29"/> <method name="setTintList(Landroid/content/res/ColorStateList;)Landroid/graphics/drawable/Icon;"/> <method name="setTintMode(Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/drawable/Icon;"/> <field name="CREATOR"/> @@ -15303,8 +14819,8 @@ <extends name="android/graphics/drawable/Drawable"/> <method name="<init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" since="4"/> <method name="<init>(Landroid/content/res/Resources;Landroid/graphics/NinePatch;)V" since="4"/> - <method name="<init>(Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" deprecated="15"/> - <method name="<init>(Landroid/graphics/NinePatch;)V" deprecated="15"/> + <method name="<init>(Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" deprecated="16"/> + <method name="<init>(Landroid/graphics/NinePatch;)V" deprecated="16"/> <method name="getPaint()Landroid/graphics/Paint;"/> <method name="setTargetDensity(I)V" since="4"/> <method name="setTargetDensity(Landroid/graphics/Canvas;)V" since="4"/> @@ -15383,13 +14899,10 @@ <extends name="android/graphics/drawable/DrawableContainer"/> <method name="<init>()V"/> <method name="addState([ILandroid/graphics/drawable/Drawable;)V"/> - <method name="findStateDrawableIndex([I)I" since="29"/> - <method name="getStateCount()I" since="29"/> - <method name="getStateDrawable(I)Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getStateSet(I)[I" since="29"/> </class> <class name="android/graphics/drawable/TransitionDrawable" since="1"> <extends name="android/graphics/drawable/LayerDrawable"/> + <method name="<init>()V" removed="3"/> <method name="<init>([Landroid/graphics/drawable/Drawable;)V" since="3"/> <method name="isCrossFadeEnabled()Z"/> <method name="resetTransition()V"/> @@ -15442,61 +14955,6 @@ <method name="onResize(FF)V"/> <method name="resize(FF)V"/> </class> - <class name="android/graphics/fonts/Font" since="29"> - <extends name="java/lang/Object"/> - <method name="getAxes()[Landroid/graphics/fonts/FontVariationAxis;"/> - <method name="getBuffer()Ljava/nio/ByteBuffer;"/> - <method name="getFile()Ljava/io/File;"/> - <method name="getLocaleList()Landroid/os/LocaleList;"/> - <method name="getStyle()Landroid/graphics/fonts/FontStyle;"/> - <method name="getTtcIndex()I"/> - </class> - <class name="android/graphics/fonts/Font$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/res/AssetManager;Ljava/lang/String;)V"/> - <method name="<init>(Landroid/content/res/Resources;I)V"/> - <method name="<init>(Landroid/os/ParcelFileDescriptor;)V"/> - <method name="<init>(Landroid/os/ParcelFileDescriptor;JJ)V"/> - <method name="<init>(Ljava/io/File;)V"/> - <method name="<init>(Ljava/nio/ByteBuffer;)V"/> - <method name="build()Landroid/graphics/fonts/Font;"/> - <method name="setFontVariationSettings(Ljava/lang/String;)Landroid/graphics/fonts/Font$Builder;"/> - <method name="setFontVariationSettings([Landroid/graphics/fonts/FontVariationAxis;)Landroid/graphics/fonts/Font$Builder;"/> - <method name="setSlant(I)Landroid/graphics/fonts/Font$Builder;"/> - <method name="setTtcIndex(I)Landroid/graphics/fonts/Font$Builder;"/> - <method name="setWeight(I)Landroid/graphics/fonts/Font$Builder;"/> - </class> - <class name="android/graphics/fonts/FontFamily" since="29"> - <extends name="java/lang/Object"/> - <method name="getFont(I)Landroid/graphics/fonts/Font;"/> - <method name="getSize()I"/> - </class> - <class name="android/graphics/fonts/FontFamily$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/graphics/fonts/Font;)V"/> - <method name="addFont(Landroid/graphics/fonts/Font;)Landroid/graphics/fonts/FontFamily$Builder;"/> - <method name="build()Landroid/graphics/fonts/FontFamily;"/> - </class> - <class name="android/graphics/fonts/FontStyle" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="<init>(II)V"/> - <method name="getSlant()I"/> - <method name="getWeight()I"/> - <field name="FONT_SLANT_ITALIC"/> - <field name="FONT_SLANT_UPRIGHT"/> - <field name="FONT_WEIGHT_BLACK"/> - <field name="FONT_WEIGHT_BOLD"/> - <field name="FONT_WEIGHT_EXTRA_BOLD"/> - <field name="FONT_WEIGHT_EXTRA_LIGHT"/> - <field name="FONT_WEIGHT_LIGHT"/> - <field name="FONT_WEIGHT_MAX"/> - <field name="FONT_WEIGHT_MEDIUM"/> - <field name="FONT_WEIGHT_MIN"/> - <field name="FONT_WEIGHT_NORMAL"/> - <field name="FONT_WEIGHT_SEMI_BOLD"/> - <field name="FONT_WEIGHT_THIN"/> - </class> <class name="android/graphics/fonts/FontVariationAxis" since="26"> <extends name="java/lang/Object"/> <method name="<init>(Ljava/lang/String;F)V"/> @@ -15505,10 +14963,6 @@ <method name="getTag()Ljava/lang/String;"/> <method name="toFontVariationSettings([Landroid/graphics/fonts/FontVariationAxis;)Ljava/lang/String;"/> </class> - <class name="android/graphics/fonts/SystemFonts" since="29"> - <extends name="java/lang/Object"/> - <method name="getAvailableFonts()Ljava/util/Set;"/> - </class> <class name="android/graphics/pdf/PdfDocument" since="19"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -15520,11 +14974,14 @@ </class> <class name="android/graphics/pdf/PdfDocument$Page" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/graphics/Canvas;Landroid/graphics/pdf/PdfDocument$PageInfo;)V" since="29"/> <method name="getCanvas()Landroid/graphics/Canvas;"/> <method name="getInfo()Landroid/graphics/pdf/PdfDocument$PageInfo;"/> </class> <class name="android/graphics/pdf/PdfDocument$PageInfo" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getContentRect()Landroid/graphics/Rect;"/> <method name="getPageHeight()I"/> <method name="getPageNumber()I"/> @@ -15547,6 +15004,8 @@ <class name="android/graphics/pdf/PdfRenderer$Page" since="21"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>(Landroid/graphics/pdf/PdfRenderer;)V" removed="29"/> + <method name="<init>(Landroid/graphics/pdf/PdfRenderer;I)V" since="29"/> <method name="getHeight()I"/> <method name="getIndex()I"/> <method name="getWidth()I"/> @@ -15554,321 +15013,264 @@ <field name="RENDER_MODE_FOR_DISPLAY"/> <field name="RENDER_MODE_FOR_PRINT"/> </class> - <class name="android/graphics/text/LineBreaker" since="29"> - <extends name="java/lang/Object"/> - <method name="computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result;"/> - <field name="BREAK_STRATEGY_BALANCED"/> - <field name="BREAK_STRATEGY_HIGH_QUALITY"/> - <field name="BREAK_STRATEGY_SIMPLE"/> - <field name="HYPHENATION_FREQUENCY_FULL"/> - <field name="HYPHENATION_FREQUENCY_NONE"/> - <field name="HYPHENATION_FREQUENCY_NORMAL"/> - <field name="JUSTIFICATION_MODE_INTER_WORD"/> - <field name="JUSTIFICATION_MODE_NONE"/> - </class> - <class name="android/graphics/text/LineBreaker$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/graphics/text/LineBreaker;"/> - <method name="setBreakStrategy(I)Landroid/graphics/text/LineBreaker$Builder;"/> - <method name="setHyphenationFrequency(I)Landroid/graphics/text/LineBreaker$Builder;"/> - <method name="setIndents([I)Landroid/graphics/text/LineBreaker$Builder;"/> - <method name="setJustificationMode(I)Landroid/graphics/text/LineBreaker$Builder;"/> - </class> - <class name="android/graphics/text/LineBreaker$ParagraphConstraints" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="getDefaultTabStop()F"/> - <method name="getFirstWidth()F"/> - <method name="getFirstWidthLineCount()I"/> - <method name="getTabStops()[F"/> - <method name="getWidth()F"/> - <method name="setIndent(FI)V"/> - <method name="setTabStops([FF)V"/> - <method name="setWidth(F)V"/> - </class> - <class name="android/graphics/text/LineBreaker$Result" since="29"> - <extends name="java/lang/Object"/> - <method name="getEndLineHyphenEdit(I)I"/> - <method name="getLineAscent(I)F"/> - <method name="getLineBreakOffset(I)I"/> - <method name="getLineCount()I"/> - <method name="getLineDescent(I)F"/> - <method name="getLineWidth(I)F"/> - <method name="getStartLineHyphenEdit(I)I"/> - <method name="hasLineTab(I)Z"/> - </class> - <class name="android/graphics/text/MeasuredText" since="29"> - <extends name="java/lang/Object"/> - <method name="getBounds(IILandroid/graphics/Rect;)V"/> - <method name="getCharWidthAt(I)F"/> - <method name="getWidth(II)F"/> - </class> - <class name="android/graphics/text/MeasuredText$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/graphics/text/MeasuredText;)V"/> - <method name="<init>([C)V"/> - <method name="appendReplacementRun(Landroid/graphics/Paint;IF)Landroid/graphics/text/MeasuredText$Builder;"/> - <method name="appendStyleRun(Landroid/graphics/Paint;IZ)Landroid/graphics/text/MeasuredText$Builder;"/> - <method name="build()Landroid/graphics/text/MeasuredText;"/> - <method name="setComputeHyphenation(Z)Landroid/graphics/text/MeasuredText$Builder;"/> - <method name="setComputeLayout(Z)Landroid/graphics/text/MeasuredText$Builder;"/> - </class> <class name="android/hardware/Camera" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="addCallbackBuffer([B)V" since="8" deprecated="29"/> - <method name="autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V" deprecated="29"/> - <method name="cancelAutoFocus()V" since="5" deprecated="29"/> - <method name="enableShutterSound(Z)Z" since="17" deprecated="29"/> - <method name="getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V" since="9" deprecated="29"/> - <method name="getNumberOfCameras()I" since="9" deprecated="29"/> - <method name="getParameters()Landroid/hardware/Camera$Parameters;" deprecated="29"/> - <method name="lock()V" since="5" deprecated="29"/> - <method name="open()Landroid/hardware/Camera;" deprecated="29"/> - <method name="open(I)Landroid/hardware/Camera;" since="9" deprecated="29"/> - <method name="reconnect()V" since="8" deprecated="29"/> - <method name="release()V" deprecated="29"/> - <method name="setAutoFocusMoveCallback(Landroid/hardware/Camera$AutoFocusMoveCallback;)V" since="16" deprecated="29"/> - <method name="setDisplayOrientation(I)V" since="8" deprecated="29"/> - <method name="setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V" deprecated="29"/> - <method name="setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V" since="14" deprecated="29"/> - <method name="setOneShotPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" since="3" deprecated="29"/> - <method name="setParameters(Landroid/hardware/Camera$Parameters;)V" deprecated="29"/> - <method name="setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" deprecated="29"/> - <method name="setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V" since="8" deprecated="29"/> - <method name="setPreviewDisplay(Landroid/view/SurfaceHolder;)V" deprecated="29"/> - <method name="setPreviewTexture(Landroid/graphics/SurfaceTexture;)V" since="11" deprecated="29"/> - <method name="setZoomChangeListener(Landroid/hardware/Camera$OnZoomChangeListener;)V" since="8" deprecated="29"/> - <method name="startFaceDetection()V" since="14" deprecated="29"/> - <method name="startPreview()V" deprecated="29"/> - <method name="startSmoothZoom(I)V" since="8" deprecated="29"/> - <method name="stopFaceDetection()V" since="14" deprecated="29"/> - <method name="stopPreview()V" deprecated="29"/> - <method name="stopSmoothZoom()V" since="8" deprecated="29"/> - <method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" deprecated="29"/> - <method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" since="5" deprecated="29"/> - <method name="unlock()V" since="5" deprecated="29"/> + <method name="<init>()V"/> + <method name="addCallbackBuffer([B)V" since="8"/> + <method name="autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V"/> + <method name="cancelAutoFocus()V" since="5"/> + <method name="enableShutterSound(Z)Z" since="17"/> + <method name="getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V" since="9"/> + <method name="getNumberOfCameras()I" since="9"/> + <method name="getParameters()Landroid/hardware/Camera$Parameters;"/> + <method name="lock()V" since="5"/> + <method name="open()Landroid/hardware/Camera;"/> + <method name="open(I)Landroid/hardware/Camera;" since="9"/> + <method name="reconnect()V" since="8"/> + <method name="release()V"/> + <method name="setAutoFocusMoveCallback(Landroid/hardware/Camera$AutoFocusMoveCallback;)V" since="16"/> + <method name="setDisplayOrientation(I)V" since="8"/> + <method name="setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V"/> + <method name="setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V" since="14"/> + <method name="setOneShotPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" since="3"/> + <method name="setParameters(Landroid/hardware/Camera$Parameters;)V"/> + <method name="setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V"/> + <method name="setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V" since="8"/> + <method name="setPreviewDisplay(Landroid/view/SurfaceHolder;)V"/> + <method name="setPreviewTexture(Landroid/graphics/SurfaceTexture;)V" since="11"/> + <method name="setZoomChangeListener(Landroid/hardware/Camera$OnZoomChangeListener;)V" since="8"/> + <method name="startFaceDetection()V" since="14"/> + <method name="startPreview()V"/> + <method name="startSmoothZoom(I)V" since="8"/> + <method name="stopFaceDetection()V" since="14"/> + <method name="stopPreview()V"/> + <method name="stopSmoothZoom()V" since="8"/> + <method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V"/> + <method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" since="5"/> + <method name="unlock()V" since="5"/> <field name="ACTION_NEW_PICTURE" since="14" deprecated="24"/> <field name="ACTION_NEW_VIDEO" since="14" deprecated="24"/> - <field name="CAMERA_ERROR_EVICTED" since="23" deprecated="29"/> - <field name="CAMERA_ERROR_SERVER_DIED" deprecated="29"/> - <field name="CAMERA_ERROR_UNKNOWN" deprecated="29"/> + <field name="CAMERA_ERROR_EVICTED" since="23"/> + <field name="CAMERA_ERROR_SERVER_DIED"/> + <field name="CAMERA_ERROR_UNKNOWN"/> </class> <class name="android/hardware/Camera$Area" since="14" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/graphics/Rect;I)V" deprecated="29"/> - <field name="rect" deprecated="29"/> - <field name="weight" deprecated="29"/> + <method name="<init>(Landroid/graphics/Rect;I)V"/> + <field name="rect"/> + <field name="weight"/> </class> <class name="android/hardware/Camera$AutoFocusCallback" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onAutoFocus(ZLandroid/hardware/Camera;)V" deprecated="29"/> + <method name="onAutoFocus(ZLandroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$AutoFocusMoveCallback" since="16" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onAutoFocusMoving(ZLandroid/hardware/Camera;)V" deprecated="29"/> + <method name="onAutoFocusMoving(ZLandroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$CameraInfo" since="9" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <field name="CAMERA_FACING_BACK" deprecated="29"/> - <field name="CAMERA_FACING_FRONT" deprecated="29"/> - <field name="canDisableShutterSound" since="17" deprecated="29"/> - <field name="facing" deprecated="29"/> - <field name="orientation" deprecated="29"/> + <method name="<init>()V"/> + <field name="CAMERA_FACING_BACK"/> + <field name="CAMERA_FACING_FRONT"/> + <field name="canDisableShutterSound" since="17"/> + <field name="facing"/> + <field name="orientation"/> </class> <class name="android/hardware/Camera$ErrorCallback" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onError(ILandroid/hardware/Camera;)V" deprecated="29"/> + <method name="onError(ILandroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$Face" since="14" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <field name="id" deprecated="29"/> - <field name="leftEye" deprecated="29"/> - <field name="mouth" deprecated="29"/> - <field name="rect" deprecated="29"/> - <field name="rightEye" deprecated="29"/> - <field name="score" deprecated="29"/> + <method name="<init>()V"/> + <field name="id"/> + <field name="leftEye"/> + <field name="mouth"/> + <field name="rect"/> + <field name="rightEye"/> + <field name="score"/> </class> <class name="android/hardware/Camera$FaceDetectionListener" since="14" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V" deprecated="29"/> + <method name="onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$OnZoomChangeListener" since="8" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onZoomChange(IZLandroid/hardware/Camera;)V" deprecated="29"/> + <method name="onZoomChange(IZLandroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$Parameters" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="flatten()Ljava/lang/String;" deprecated="29"/> - <method name="get(Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="getAntibanding()Ljava/lang/String;" since="5" deprecated="29"/> - <method name="getAutoExposureLock()Z" since="14" deprecated="29"/> - <method name="getAutoWhiteBalanceLock()Z" since="14" deprecated="29"/> - <method name="getColorEffect()Ljava/lang/String;" since="5" deprecated="29"/> - <method name="getExposureCompensation()I" since="8" deprecated="29"/> - <method name="getExposureCompensationStep()F" since="8" deprecated="29"/> - <method name="getFlashMode()Ljava/lang/String;" since="5" deprecated="29"/> - <method name="getFocalLength()F" since="8" deprecated="29"/> - <method name="getFocusAreas()Ljava/util/List;" since="14" deprecated="29"/> - <method name="getFocusDistances([F)V" since="9" deprecated="29"/> - <method name="getFocusMode()Ljava/lang/String;" since="5" deprecated="29"/> - <method name="getHorizontalViewAngle()F" since="8" deprecated="29"/> - <method name="getInt(Ljava/lang/String;)I" deprecated="29"/> - <method name="getJpegQuality()I" since="5" deprecated="29"/> - <method name="getJpegThumbnailQuality()I" since="5" deprecated="29"/> - <method name="getJpegThumbnailSize()Landroid/hardware/Camera$Size;" since="5" deprecated="29"/> - <method name="getMaxExposureCompensation()I" since="8" deprecated="29"/> - <method name="getMaxNumDetectedFaces()I" since="14" deprecated="29"/> - <method name="getMaxNumFocusAreas()I" since="14" deprecated="29"/> - <method name="getMaxNumMeteringAreas()I" since="14" deprecated="29"/> - <method name="getMaxZoom()I" since="8" deprecated="29"/> - <method name="getMeteringAreas()Ljava/util/List;" since="14" deprecated="29"/> - <method name="getMinExposureCompensation()I" since="8" deprecated="29"/> - <method name="getPictureFormat()I" deprecated="29"/> - <method name="getPictureSize()Landroid/hardware/Camera$Size;" deprecated="29"/> - <method name="getPreferredPreviewSizeForVideo()Landroid/hardware/Camera$Size;" since="11" deprecated="29"/> - <method name="getPreviewFormat()I" deprecated="29"/> - <method name="getPreviewFpsRange([I)V" since="9" deprecated="29"/> - <method name="getPreviewFrameRate()I" deprecated="15"/> - <method name="getPreviewSize()Landroid/hardware/Camera$Size;" deprecated="29"/> - <method name="getSceneMode()Ljava/lang/String;" since="5" deprecated="29"/> - <method name="getSupportedAntibanding()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedColorEffects()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedFlashModes()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedFocusModes()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedJpegThumbnailSizes()Ljava/util/List;" since="8" deprecated="29"/> - <method name="getSupportedPictureFormats()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedPictureSizes()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedPreviewFormats()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedPreviewFpsRange()Ljava/util/List;" since="9" deprecated="29"/> - <method name="getSupportedPreviewFrameRates()Ljava/util/List;" since="5" deprecated="15"/> - <method name="getSupportedPreviewSizes()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedSceneModes()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getSupportedVideoSizes()Ljava/util/List;" since="11" deprecated="29"/> - <method name="getSupportedWhiteBalance()Ljava/util/List;" since="5" deprecated="29"/> - <method name="getVerticalViewAngle()F" since="8" deprecated="29"/> - <method name="getVideoStabilization()Z" since="15" deprecated="29"/> - <method name="getWhiteBalance()Ljava/lang/String;" since="5" deprecated="29"/> - <method name="getZoom()I" since="8" deprecated="29"/> - <method name="getZoomRatios()Ljava/util/List;" since="8" deprecated="29"/> - <method name="isAutoExposureLockSupported()Z" since="14" deprecated="29"/> - <method name="isAutoWhiteBalanceLockSupported()Z" since="14" deprecated="29"/> - <method name="isSmoothZoomSupported()Z" since="8" deprecated="29"/> - <method name="isVideoSnapshotSupported()Z" since="14" deprecated="29"/> - <method name="isVideoStabilizationSupported()Z" since="15" deprecated="29"/> - <method name="isZoomSupported()Z" since="8" deprecated="29"/> - <method name="remove(Ljava/lang/String;)V" deprecated="29"/> - <method name="removeGpsData()V" since="5" deprecated="29"/> - <method name="set(Ljava/lang/String;I)V" deprecated="29"/> - <method name="set(Ljava/lang/String;Ljava/lang/String;)V" deprecated="29"/> - <method name="setAntibanding(Ljava/lang/String;)V" since="5" deprecated="29"/> - <method name="setAutoExposureLock(Z)V" since="14" deprecated="29"/> - <method name="setAutoWhiteBalanceLock(Z)V" since="14" deprecated="29"/> - <method name="setColorEffect(Ljava/lang/String;)V" since="5" deprecated="29"/> - <method name="setExposureCompensation(I)V" since="8" deprecated="29"/> - <method name="setFlashMode(Ljava/lang/String;)V" since="5" deprecated="29"/> - <method name="setFocusAreas(Ljava/util/List;)V" since="14" deprecated="29"/> - <method name="setFocusMode(Ljava/lang/String;)V" since="5" deprecated="29"/> - <method name="setGpsAltitude(D)V" since="5" deprecated="29"/> - <method name="setGpsLatitude(D)V" since="5" deprecated="29"/> - <method name="setGpsLongitude(D)V" since="5" deprecated="29"/> - <method name="setGpsProcessingMethod(Ljava/lang/String;)V" since="8" deprecated="29"/> - <method name="setGpsTimestamp(J)V" since="5" deprecated="29"/> - <method name="setJpegQuality(I)V" since="5" deprecated="29"/> - <method name="setJpegThumbnailQuality(I)V" since="5" deprecated="29"/> - <method name="setJpegThumbnailSize(II)V" since="5" deprecated="29"/> - <method name="setMeteringAreas(Ljava/util/List;)V" since="14" deprecated="29"/> - <method name="setPictureFormat(I)V" deprecated="29"/> - <method name="setPictureSize(II)V" deprecated="29"/> - <method name="setPreviewFormat(I)V" deprecated="29"/> - <method name="setPreviewFpsRange(II)V" since="9" deprecated="29"/> - <method name="setPreviewFrameRate(I)V" deprecated="15"/> - <method name="setPreviewSize(II)V" deprecated="29"/> - <method name="setRecordingHint(Z)V" since="14" deprecated="29"/> - <method name="setRotation(I)V" since="5" deprecated="29"/> - <method name="setSceneMode(Ljava/lang/String;)V" since="5" deprecated="29"/> - <method name="setVideoStabilization(Z)V" since="15" deprecated="29"/> - <method name="setWhiteBalance(Ljava/lang/String;)V" since="5" deprecated="29"/> - <method name="setZoom(I)V" since="8" deprecated="29"/> - <method name="unflatten(Ljava/lang/String;)V" deprecated="29"/> - <field name="ANTIBANDING_50HZ" since="5" deprecated="29"/> - <field name="ANTIBANDING_60HZ" since="5" deprecated="29"/> - <field name="ANTIBANDING_AUTO" since="5" deprecated="29"/> - <field name="ANTIBANDING_OFF" since="5" deprecated="29"/> - <field name="EFFECT_AQUA" since="5" deprecated="29"/> - <field name="EFFECT_BLACKBOARD" since="5" deprecated="29"/> - <field name="EFFECT_MONO" since="5" deprecated="29"/> - <field name="EFFECT_NEGATIVE" since="5" deprecated="29"/> - <field name="EFFECT_NONE" since="5" deprecated="29"/> - <field name="EFFECT_POSTERIZE" since="5" deprecated="29"/> - <field name="EFFECT_SEPIA" since="5" deprecated="29"/> - <field name="EFFECT_SOLARIZE" since="5" deprecated="29"/> - <field name="EFFECT_WHITEBOARD" since="5" deprecated="29"/> - <field name="FLASH_MODE_AUTO" since="5" deprecated="29"/> - <field name="FLASH_MODE_OFF" since="5" deprecated="29"/> - <field name="FLASH_MODE_ON" since="5" deprecated="29"/> - <field name="FLASH_MODE_RED_EYE" since="5" deprecated="29"/> - <field name="FLASH_MODE_TORCH" since="5" deprecated="29"/> - <field name="FOCUS_DISTANCE_FAR_INDEX" since="9" deprecated="29"/> - <field name="FOCUS_DISTANCE_NEAR_INDEX" since="9" deprecated="29"/> - <field name="FOCUS_DISTANCE_OPTIMAL_INDEX" since="9" deprecated="29"/> - <field name="FOCUS_MODE_AUTO" since="5" deprecated="29"/> - <field name="FOCUS_MODE_CONTINUOUS_PICTURE" since="14" deprecated="29"/> - <field name="FOCUS_MODE_CONTINUOUS_VIDEO" since="9" deprecated="29"/> - <field name="FOCUS_MODE_EDOF" since="8" deprecated="29"/> - <field name="FOCUS_MODE_FIXED" since="5" deprecated="29"/> - <field name="FOCUS_MODE_INFINITY" since="5" deprecated="29"/> - <field name="FOCUS_MODE_MACRO" since="5" deprecated="29"/> - <field name="PREVIEW_FPS_MAX_INDEX" since="9" deprecated="29"/> - <field name="PREVIEW_FPS_MIN_INDEX" since="9" deprecated="29"/> - <field name="SCENE_MODE_ACTION" since="5" deprecated="29"/> - <field name="SCENE_MODE_AUTO" since="5" deprecated="29"/> - <field name="SCENE_MODE_BARCODE" since="8" deprecated="29"/> - <field name="SCENE_MODE_BEACH" since="5" deprecated="29"/> - <field name="SCENE_MODE_CANDLELIGHT" since="5" deprecated="29"/> - <field name="SCENE_MODE_FIREWORKS" since="5" deprecated="29"/> - <field name="SCENE_MODE_HDR" since="17" deprecated="29"/> - <field name="SCENE_MODE_LANDSCAPE" since="5" deprecated="29"/> - <field name="SCENE_MODE_NIGHT" since="5" deprecated="29"/> - <field name="SCENE_MODE_NIGHT_PORTRAIT" since="5" deprecated="29"/> - <field name="SCENE_MODE_PARTY" since="5" deprecated="29"/> - <field name="SCENE_MODE_PORTRAIT" since="5" deprecated="29"/> - <field name="SCENE_MODE_SNOW" since="5" deprecated="29"/> - <field name="SCENE_MODE_SPORTS" since="5" deprecated="29"/> - <field name="SCENE_MODE_STEADYPHOTO" since="5" deprecated="29"/> - <field name="SCENE_MODE_SUNSET" since="5" deprecated="29"/> - <field name="SCENE_MODE_THEATRE" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_AUTO" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_CLOUDY_DAYLIGHT" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_DAYLIGHT" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_FLUORESCENT" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_INCANDESCENT" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_SHADE" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_TWILIGHT" since="5" deprecated="29"/> - <field name="WHITE_BALANCE_WARM_FLUORESCENT" since="5" deprecated="29"/> + <method name="<init>(Landroid/hardware/Camera;)V"/> + <method name="flatten()Ljava/lang/String;"/> + <method name="get(Ljava/lang/String;)Ljava/lang/String;"/> + <method name="getAntibanding()Ljava/lang/String;" since="5"/> + <method name="getAutoExposureLock()Z" since="14"/> + <method name="getAutoWhiteBalanceLock()Z" since="14"/> + <method name="getColorEffect()Ljava/lang/String;" since="5"/> + <method name="getExposureCompensation()I" since="8"/> + <method name="getExposureCompensationStep()F" since="8"/> + <method name="getFlashMode()Ljava/lang/String;" since="5"/> + <method name="getFocalLength()F" since="8"/> + <method name="getFocusAreas()Ljava/util/List;" since="14"/> + <method name="getFocusDistances([F)V" since="9"/> + <method name="getFocusMode()Ljava/lang/String;" since="5"/> + <method name="getHorizontalViewAngle()F" since="8"/> + <method name="getInt(Ljava/lang/String;)I"/> + <method name="getJpegQuality()I" since="5"/> + <method name="getJpegThumbnailQuality()I" since="5"/> + <method name="getJpegThumbnailSize()Landroid/hardware/Camera$Size;" since="5"/> + <method name="getMaxExposureCompensation()I" since="8"/> + <method name="getMaxNumDetectedFaces()I" since="14"/> + <method name="getMaxNumFocusAreas()I" since="14"/> + <method name="getMaxNumMeteringAreas()I" since="14"/> + <method name="getMaxZoom()I" since="8"/> + <method name="getMeteringAreas()Ljava/util/List;" since="14"/> + <method name="getMinExposureCompensation()I" since="8"/> + <method name="getPictureFormat()I"/> + <method name="getPictureSize()Landroid/hardware/Camera$Size;"/> + <method name="getPreferredPreviewSizeForVideo()Landroid/hardware/Camera$Size;" since="11"/> + <method name="getPreviewFormat()I"/> + <method name="getPreviewFpsRange([I)V" since="9"/> + <method name="getPreviewFrameRate()I" deprecated="16"/> + <method name="getPreviewSize()Landroid/hardware/Camera$Size;"/> + <method name="getSceneMode()Ljava/lang/String;" since="5"/> + <method name="getSupportedAntibanding()Ljava/util/List;" since="5"/> + <method name="getSupportedColorEffects()Ljava/util/List;" since="5"/> + <method name="getSupportedFlashModes()Ljava/util/List;" since="5"/> + <method name="getSupportedFocusModes()Ljava/util/List;" since="5"/> + <method name="getSupportedJpegThumbnailSizes()Ljava/util/List;" since="8"/> + <method name="getSupportedPictureFormats()Ljava/util/List;" since="5"/> + <method name="getSupportedPictureSizes()Ljava/util/List;" since="5"/> + <method name="getSupportedPreviewFormats()Ljava/util/List;" since="5"/> + <method name="getSupportedPreviewFpsRange()Ljava/util/List;" since="9"/> + <method name="getSupportedPreviewFrameRates()Ljava/util/List;" since="5" deprecated="16"/> + <method name="getSupportedPreviewSizes()Ljava/util/List;" since="5"/> + <method name="getSupportedSceneModes()Ljava/util/List;" since="5"/> + <method name="getSupportedVideoSizes()Ljava/util/List;" since="11"/> + <method name="getSupportedWhiteBalance()Ljava/util/List;" since="5"/> + <method name="getVerticalViewAngle()F" since="8"/> + <method name="getVideoStabilization()Z" since="15"/> + <method name="getWhiteBalance()Ljava/lang/String;" since="5"/> + <method name="getZoom()I" since="8"/> + <method name="getZoomRatios()Ljava/util/List;" since="8"/> + <method name="isAutoExposureLockSupported()Z" since="14"/> + <method name="isAutoWhiteBalanceLockSupported()Z" since="14"/> + <method name="isSmoothZoomSupported()Z" since="8"/> + <method name="isVideoSnapshotSupported()Z" since="14"/> + <method name="isVideoStabilizationSupported()Z" since="15"/> + <method name="isZoomSupported()Z" since="8"/> + <method name="remove(Ljava/lang/String;)V"/> + <method name="removeGpsData()V" since="5"/> + <method name="set(Ljava/lang/String;I)V"/> + <method name="set(Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="setAntibanding(Ljava/lang/String;)V" since="5"/> + <method name="setAutoExposureLock(Z)V" since="14"/> + <method name="setAutoWhiteBalanceLock(Z)V" since="14"/> + <method name="setColorEffect(Ljava/lang/String;)V" since="5"/> + <method name="setExposureCompensation(I)V" since="8"/> + <method name="setFlashMode(Ljava/lang/String;)V" since="5"/> + <method name="setFocusAreas(Ljava/util/List;)V" since="14"/> + <method name="setFocusMode(Ljava/lang/String;)V" since="5"/> + <method name="setGpsAltitude(D)V" since="5"/> + <method name="setGpsLatitude(D)V" since="5"/> + <method name="setGpsLongitude(D)V" since="5"/> + <method name="setGpsProcessingMethod(Ljava/lang/String;)V" since="8"/> + <method name="setGpsTimestamp(J)V" since="5"/> + <method name="setJpegQuality(I)V" since="5"/> + <method name="setJpegThumbnailQuality(I)V" since="5"/> + <method name="setJpegThumbnailSize(II)V" since="5"/> + <method name="setMeteringAreas(Ljava/util/List;)V" since="14"/> + <method name="setPictureFormat(I)V"/> + <method name="setPictureSize(II)V"/> + <method name="setPreviewFormat(I)V"/> + <method name="setPreviewFpsRange(II)V" since="9"/> + <method name="setPreviewFrameRate(I)V" deprecated="16"/> + <method name="setPreviewSize(II)V"/> + <method name="setRecordingHint(Z)V" since="14"/> + <method name="setRotation(I)V" since="5"/> + <method name="setSceneMode(Ljava/lang/String;)V" since="5"/> + <method name="setVideoStabilization(Z)V" since="15"/> + <method name="setWhiteBalance(Ljava/lang/String;)V" since="5"/> + <method name="setZoom(I)V" since="8"/> + <method name="unflatten(Ljava/lang/String;)V"/> + <field name="ANTIBANDING_50HZ" since="5"/> + <field name="ANTIBANDING_60HZ" since="5"/> + <field name="ANTIBANDING_AUTO" since="5"/> + <field name="ANTIBANDING_OFF" since="5"/> + <field name="EFFECT_AQUA" since="5"/> + <field name="EFFECT_BLACKBOARD" since="5"/> + <field name="EFFECT_MONO" since="5"/> + <field name="EFFECT_NEGATIVE" since="5"/> + <field name="EFFECT_NONE" since="5"/> + <field name="EFFECT_POSTERIZE" since="5"/> + <field name="EFFECT_SEPIA" since="5"/> + <field name="EFFECT_SOLARIZE" since="5"/> + <field name="EFFECT_WHITEBOARD" since="5"/> + <field name="FLASH_MODE_AUTO" since="5"/> + <field name="FLASH_MODE_OFF" since="5"/> + <field name="FLASH_MODE_ON" since="5"/> + <field name="FLASH_MODE_RED_EYE" since="5"/> + <field name="FLASH_MODE_TORCH" since="5"/> + <field name="FOCUS_DISTANCE_FAR_INDEX" since="9"/> + <field name="FOCUS_DISTANCE_NEAR_INDEX" since="9"/> + <field name="FOCUS_DISTANCE_OPTIMAL_INDEX" since="9"/> + <field name="FOCUS_MODE_AUTO" since="5"/> + <field name="FOCUS_MODE_CONTINUOUS_PICTURE" since="14"/> + <field name="FOCUS_MODE_CONTINUOUS_VIDEO" since="9"/> + <field name="FOCUS_MODE_EDOF" since="8"/> + <field name="FOCUS_MODE_FIXED" since="5"/> + <field name="FOCUS_MODE_INFINITY" since="5"/> + <field name="FOCUS_MODE_MACRO" since="5"/> + <field name="PREVIEW_FPS_MAX_INDEX" since="9"/> + <field name="PREVIEW_FPS_MIN_INDEX" since="9"/> + <field name="SCENE_MODE_ACTION" since="5"/> + <field name="SCENE_MODE_AUTO" since="5"/> + <field name="SCENE_MODE_BARCODE" since="8"/> + <field name="SCENE_MODE_BEACH" since="5"/> + <field name="SCENE_MODE_CANDLELIGHT" since="5"/> + <field name="SCENE_MODE_FIREWORKS" since="5"/> + <field name="SCENE_MODE_HDR" since="17"/> + <field name="SCENE_MODE_LANDSCAPE" since="5"/> + <field name="SCENE_MODE_NIGHT" since="5"/> + <field name="SCENE_MODE_NIGHT_PORTRAIT" since="5"/> + <field name="SCENE_MODE_PARTY" since="5"/> + <field name="SCENE_MODE_PORTRAIT" since="5"/> + <field name="SCENE_MODE_SNOW" since="5"/> + <field name="SCENE_MODE_SPORTS" since="5"/> + <field name="SCENE_MODE_STEADYPHOTO" since="5"/> + <field name="SCENE_MODE_SUNSET" since="5"/> + <field name="SCENE_MODE_THEATRE" since="5"/> + <field name="WHITE_BALANCE_AUTO" since="5"/> + <field name="WHITE_BALANCE_CLOUDY_DAYLIGHT" since="5"/> + <field name="WHITE_BALANCE_DAYLIGHT" since="5"/> + <field name="WHITE_BALANCE_FLUORESCENT" since="5"/> + <field name="WHITE_BALANCE_INCANDESCENT" since="5"/> + <field name="WHITE_BALANCE_SHADE" since="5"/> + <field name="WHITE_BALANCE_TWILIGHT" since="5"/> + <field name="WHITE_BALANCE_WARM_FLUORESCENT" since="5"/> </class> <class name="android/hardware/Camera$PictureCallback" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onPictureTaken([BLandroid/hardware/Camera;)V" deprecated="29"/> + <method name="onPictureTaken([BLandroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$PreviewCallback" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onPreviewFrame([BLandroid/hardware/Camera;)V" deprecated="29"/> + <method name="onPreviewFrame([BLandroid/hardware/Camera;)V"/> </class> <class name="android/hardware/Camera$ShutterCallback" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="onShutter()V" deprecated="29"/> + <method name="onShutter()V"/> </class> <class name="android/hardware/Camera$Size" since="1" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/hardware/Camera;II)V" deprecated="29"/> - <field name="height" deprecated="29"/> - <field name="width" deprecated="29"/> + <method name="<init>(Landroid/hardware/Camera;II)V"/> + <field name="height"/> + <field name="width"/> </class> <class name="android/hardware/ConsumerIrManager" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getCarrierFrequencies()[Landroid/hardware/ConsumerIrManager$CarrierFrequencyRange;"/> <method name="hasIrEmitter()Z"/> <method name="transmit(I[I)V"/> @@ -15894,6 +15296,8 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> <method name="create(IIIIJ)Landroid/hardware/HardwareBuffer;"/> <method name="getFormat()I"/> <method name="getHeight()I"/> @@ -15901,7 +15305,6 @@ <method name="getUsage()J"/> <method name="getWidth()I"/> <method name="isClosed()Z"/> - <method name="isSupported(IIIIJ)Z" since="29"/> <field name="BLOB"/> <field name="CREATOR"/> <field name="DS_24UI8" since="28"/> @@ -15931,6 +15334,7 @@ </class> <class name="android/hardware/Sensor" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getFifoMaxEventCount()I" since="19"/> <method name="getFifoReservedEventCount()I" since="19"/> <method name="getHighestDirectReportRateLevel()I" since="26"/> @@ -15999,7 +15403,7 @@ <field name="TYPE_MAGNETIC_FIELD"/> <field name="TYPE_MAGNETIC_FIELD_UNCALIBRATED" since="18"/> <field name="TYPE_MOTION_DETECT" since="24"/> - <field name="TYPE_ORIENTATION" deprecated="15"/> + <field name="TYPE_ORIENTATION" deprecated="16"/> <field name="TYPE_POSE_6DOF" since="24"/> <field name="TYPE_PRESSURE"/> <field name="TYPE_PROXIMITY"/> @@ -16009,10 +15413,12 @@ <field name="TYPE_STATIONARY_DETECT" since="24"/> <field name="TYPE_STEP_COUNTER" since="19"/> <field name="TYPE_STEP_DETECTOR" since="19"/> - <field name="TYPE_TEMPERATURE" deprecated="15"/> + <field name="TYPE_TEMPERATURE" deprecated="16"/> </class> <class name="android/hardware/SensorAdditionalInfo" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/hardware/Sensor;II[I[F)V" since="29"/> <field name="TYPE_FRAME_BEGIN"/> <field name="TYPE_FRAME_END"/> <field name="TYPE_INTERNAL_TEMPERATURE"/> @@ -16029,6 +15435,8 @@ <class name="android/hardware/SensorDirectChannel" since="26"> <extends name="java/lang/Object"/> <implements name="java/nio/channels/Channel"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/hardware/SensorManager;IIJ)V" since="29"/> <method name="configure(Landroid/hardware/Sensor;I)I"/> <field name="RATE_FAST"/> <field name="RATE_NORMAL"/> @@ -16039,6 +15447,8 @@ </class> <class name="android/hardware/SensorEvent" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <field name="accuracy"/> <field name="sensor"/> <field name="timestamp"/> @@ -16062,11 +15472,12 @@ </class> <class name="android/hardware/SensorListener" since="1" deprecated="3"> <extends name="java/lang/Object"/> - <method name="onAccuracyChanged(II)V" deprecated="29"/> - <method name="onSensorChanged(I[F)V" deprecated="29"/> + <method name="onAccuracyChanged(II)V"/> + <method name="onSensorChanged(I[F)V"/> </class> <class name="android/hardware/SensorManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancelTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z" since="18"/> <method name="createDirectChannel(Landroid/hardware/HardwareBuffer;)Landroid/hardware/SensorDirectChannel;" since="26"/> <method name="createDirectChannel(Landroid/os/MemoryFile;)Landroid/hardware/SensorDirectChannel;" since="26"/> @@ -16082,7 +15493,7 @@ <method name="getRotationMatrix([F[F[F[F)Z" since="3"/> <method name="getRotationMatrixFromVector([F[F)V" since="9"/> <method name="getSensorList(I)Ljava/util/List;" since="3"/> - <method name="getSensors()I" deprecated="15"/> + <method name="getSensors()I" deprecated="16"/> <method name="isDynamicSensorDiscoverySupported()Z" since="24"/> <method name="registerDynamicSensorCallback(Landroid/hardware/SensorManager$DynamicSensorCallback;)V" since="24"/> <method name="registerDynamicSensorCallback(Landroid/hardware/SensorManager$DynamicSensorCallback;Landroid/os/Handler;)V" since="24"/> @@ -16090,24 +15501,24 @@ <method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;II)Z" since="19"/> <method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;IILandroid/os/Handler;)Z" since="19"/> <method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;)Z" since="3"/> - <method name="registerListener(Landroid/hardware/SensorListener;I)Z" deprecated="15"/> - <method name="registerListener(Landroid/hardware/SensorListener;II)Z" deprecated="15"/> + <method name="registerListener(Landroid/hardware/SensorListener;I)Z" deprecated="16"/> + <method name="registerListener(Landroid/hardware/SensorListener;II)Z" deprecated="16"/> <method name="remapCoordinateSystem([FII[F)Z" since="3"/> <method name="requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z" since="18"/> <method name="unregisterDynamicSensorCallback(Landroid/hardware/SensorManager$DynamicSensorCallback;)V" since="24"/> <method name="unregisterListener(Landroid/hardware/SensorEventListener;)V" since="3"/> <method name="unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V" since="3"/> - <method name="unregisterListener(Landroid/hardware/SensorListener;)V" deprecated="15"/> - <method name="unregisterListener(Landroid/hardware/SensorListener;I)V" deprecated="15"/> + <method name="unregisterListener(Landroid/hardware/SensorListener;)V" deprecated="16"/> + <method name="unregisterListener(Landroid/hardware/SensorListener;I)V" deprecated="16"/> <field name="AXIS_MINUS_X" since="3"/> <field name="AXIS_MINUS_Y" since="3"/> <field name="AXIS_MINUS_Z" since="3"/> <field name="AXIS_X" since="3"/> <field name="AXIS_Y" since="3"/> <field name="AXIS_Z" since="3"/> - <field name="DATA_X" deprecated="15"/> - <field name="DATA_Y" deprecated="15"/> - <field name="DATA_Z" deprecated="15"/> + <field name="DATA_X" deprecated="16"/> + <field name="DATA_Y" deprecated="16"/> + <field name="DATA_Z" deprecated="16"/> <field name="GRAVITY_DEATH_STAR_I"/> <field name="GRAVITY_EARTH"/> <field name="GRAVITY_JUPITER"/> @@ -16132,30 +15543,30 @@ <field name="MAGNETIC_FIELD_EARTH_MAX"/> <field name="MAGNETIC_FIELD_EARTH_MIN"/> <field name="PRESSURE_STANDARD_ATMOSPHERE" since="9"/> - <field name="RAW_DATA_INDEX" deprecated="15"/> - <field name="RAW_DATA_X" deprecated="15"/> - <field name="RAW_DATA_Y" deprecated="15"/> - <field name="RAW_DATA_Z" deprecated="15"/> - <field name="SENSOR_ACCELEROMETER" deprecated="15"/> - <field name="SENSOR_ALL" deprecated="15"/> + <field name="RAW_DATA_INDEX" deprecated="16"/> + <field name="RAW_DATA_X" deprecated="16"/> + <field name="RAW_DATA_Y" deprecated="16"/> + <field name="RAW_DATA_Z" deprecated="16"/> + <field name="SENSOR_ACCELEROMETER" deprecated="16"/> + <field name="SENSOR_ALL" deprecated="16"/> <field name="SENSOR_DELAY_FASTEST"/> <field name="SENSOR_DELAY_GAME"/> <field name="SENSOR_DELAY_NORMAL"/> <field name="SENSOR_DELAY_UI"/> - <field name="SENSOR_LIGHT" deprecated="15"/> - <field name="SENSOR_MAGNETIC_FIELD" deprecated="15"/> - <field name="SENSOR_MAX" deprecated="15"/> - <field name="SENSOR_MIN" deprecated="15"/> - <field name="SENSOR_ORIENTATION" deprecated="15"/> - <field name="SENSOR_ORIENTATION_RAW" deprecated="15"/> - <field name="SENSOR_PROXIMITY" deprecated="15"/> + <field name="SENSOR_LIGHT" deprecated="16"/> + <field name="SENSOR_MAGNETIC_FIELD" deprecated="16"/> + <field name="SENSOR_MAX" deprecated="16"/> + <field name="SENSOR_MIN" deprecated="16"/> + <field name="SENSOR_ORIENTATION" deprecated="16"/> + <field name="SENSOR_ORIENTATION_RAW" deprecated="16"/> + <field name="SENSOR_PROXIMITY" deprecated="16"/> <field name="SENSOR_STATUS_ACCURACY_HIGH"/> <field name="SENSOR_STATUS_ACCURACY_LOW"/> <field name="SENSOR_STATUS_ACCURACY_MEDIUM"/> <field name="SENSOR_STATUS_NO_CONTACT" since="20"/> <field name="SENSOR_STATUS_UNRELIABLE"/> - <field name="SENSOR_TEMPERATURE" deprecated="15"/> - <field name="SENSOR_TRICORDER" deprecated="15"/> + <field name="SENSOR_TEMPERATURE" deprecated="16"/> + <field name="SENSOR_TRICORDER" deprecated="16"/> <field name="STANDARD_GRAVITY"/> </class> <class name="android/hardware/SensorManager$DynamicSensorCallback" since="24"> @@ -16166,6 +15577,8 @@ </class> <class name="android/hardware/TriggerEvent" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <field name="sensor"/> <field name="timestamp"/> <field name="values"/> @@ -16175,16 +15588,9 @@ <method name="<init>()V"/> <method name="onTrigger(Landroid/hardware/TriggerEvent;)V"/> </class> - <class name="android/hardware/biometrics/BiometricManager" since="29"> - <extends name="java/lang/Object"/> - <method name="canAuthenticate()I"/> - <field name="BIOMETRIC_ERROR_HW_UNAVAILABLE"/> - <field name="BIOMETRIC_ERROR_NONE_ENROLLED"/> - <field name="BIOMETRIC_ERROR_NO_HARDWARE"/> - <field name="BIOMETRIC_SUCCESS"/> - </class> <class name="android/hardware/biometrics/BiometricPrompt" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="authenticate(Landroid/hardware/biometrics/BiometricPrompt$CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V"/> <method name="authenticate(Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V"/> <field name="BIOMETRIC_ACQUIRED_GOOD"/> @@ -16199,7 +15605,6 @@ <field name="BIOMETRIC_ERROR_LOCKOUT"/> <field name="BIOMETRIC_ERROR_LOCKOUT_PERMANENT"/> <field name="BIOMETRIC_ERROR_NO_BIOMETRICS"/> - <field name="BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL" since="29"/> <field name="BIOMETRIC_ERROR_NO_SPACE"/> <field name="BIOMETRIC_ERROR_TIMEOUT"/> <field name="BIOMETRIC_ERROR_UNABLE_TO_PROCESS"/> @@ -16216,15 +15621,14 @@ </class> <class name="android/hardware/biometrics/BiometricPrompt$AuthenticationResult" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getCryptoObject()Landroid/hardware/biometrics/BiometricPrompt$CryptoObject;"/> </class> <class name="android/hardware/biometrics/BiometricPrompt$Builder" since="28"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/content/Context;)V"/> <method name="build()Landroid/hardware/biometrics/BiometricPrompt;"/> - <method name="setConfirmationRequired(Z)Landroid/hardware/biometrics/BiometricPrompt$Builder;" since="29"/> <method name="setDescription(Ljava/lang/CharSequence;)Landroid/hardware/biometrics/BiometricPrompt$Builder;"/> - <method name="setDeviceCredentialAllowed(Z)Landroid/hardware/biometrics/BiometricPrompt$Builder;" since="29"/> <method name="setNegativeButton(Ljava/lang/CharSequence;Ljava/util/concurrent/Executor;Landroid/content/DialogInterface$OnClickListener;)Landroid/hardware/biometrics/BiometricPrompt$Builder;"/> <method name="setSubtitle(Ljava/lang/CharSequence;)Landroid/hardware/biometrics/BiometricPrompt$Builder;"/> <method name="setTitle(Ljava/lang/CharSequence;)Landroid/hardware/biometrics/BiometricPrompt$Builder;"/> @@ -16296,14 +15700,13 @@ </class> <class name="android/hardware/camera2/CameraCharacteristics" since="21"> <extends name="android/hardware/camera2/CameraMetadata"/> + <method name="<init>()V"/> <method name="get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;"/> <method name="getAvailableCaptureRequestKeys()Ljava/util/List;"/> <method name="getAvailableCaptureResultKeys()Ljava/util/List;"/> <method name="getAvailablePhysicalCameraRequestKeys()Ljava/util/List;" since="28"/> <method name="getAvailableSessionKeys()Ljava/util/List;" since="28"/> - <method name="getKeysNeedingPermission()Ljava/util/List;" since="29"/> <method name="getPhysicalCameraIds()Ljava/util/Set;" since="28"/> - <method name="getRecommendedStreamConfigurationMap(I)Landroid/hardware/camera2/params/RecommendedStreamConfigurationMap;" since="29"/> <field name="COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES"/> <field name="CONTROL_AE_AVAILABLE_ANTIBANDING_MODES"/> <field name="CONTROL_AE_AVAILABLE_MODES"/> @@ -16356,7 +15759,6 @@ <field name="REQUEST_PIPELINE_MAX_DEPTH"/> <field name="SCALER_AVAILABLE_MAX_DIGITAL_ZOOM"/> <field name="SCALER_CROPPING_TYPE"/> - <field name="SCALER_MANDATORY_STREAM_COMBINATIONS" since="29"/> <field name="SCALER_STREAM_CONFIGURATION_MAP"/> <field name="SENSOR_AVAILABLE_TEST_PATTERN_MODES"/> <field name="SENSOR_BLACK_LEVEL_PATTERN"/> @@ -16394,6 +15796,7 @@ </class> <class name="android/hardware/camera2/CameraCharacteristics$Key" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> <method name="<init>(Ljava/lang/String;Ljava/lang/Class;)V" since="29"/> <method name="getName()Ljava/lang/String;"/> </class> @@ -16405,6 +15808,7 @@ <class name="android/hardware/camera2/CameraDevice" since="21"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder;"/> <method name="createCaptureRequest(ILjava/util/Set;)Landroid/hardware/camera2/CaptureRequest$Builder;" since="28"/> <method name="createCaptureSession(Landroid/hardware/camera2/params/SessionConfiguration;)V" since="28"/> @@ -16415,7 +15819,6 @@ <method name="createReprocessableCaptureSession(Landroid/hardware/camera2/params/InputConfiguration;Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V" since="23"/> <method name="createReprocessableCaptureSessionByConfigurations(Landroid/hardware/camera2/params/InputConfiguration;Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V" since="24"/> <method name="getId()Ljava/lang/String;"/> - <method name="isSessionConfigurationSupported(Landroid/hardware/camera2/params/SessionConfiguration;)Z" since="29"/> <field name="TEMPLATE_MANUAL"/> <field name="TEMPLATE_PREVIEW"/> <field name="TEMPLATE_RECORD"/> @@ -16438,6 +15841,8 @@ </class> <class name="android/hardware/camera2/CameraManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;"/> <method name="getCameraIdList()[Ljava/lang/String;"/> <method name="openCamera(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Landroid/os/Handler;)V"/> @@ -16453,7 +15858,6 @@ <class name="android/hardware/camera2/CameraManager$AvailabilityCallback" since="21"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="onCameraAccessPrioritiesChanged()V" since="29"/> <method name="onCameraAvailable(Ljava/lang/String;)V"/> <method name="onCameraUnavailable(Ljava/lang/String;)V"/> </class> @@ -16465,6 +15869,7 @@ </class> <class name="android/hardware/camera2/CameraMetadata" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getKeys()Ljava/util/List;"/> <field name="COLOR_CORRECTION_ABERRATION_MODE_FAST"/> <field name="COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY"/> @@ -16618,15 +16023,12 @@ <field name="REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING" since="23"/> <field name="REQUEST_AVAILABLE_CAPABILITIES_RAW"/> <field name="REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS" since="22"/> - <field name="REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA" since="29"/> <field name="REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING" since="23"/> <field name="SCALER_CROPPING_TYPE_CENTER_ONLY"/> <field name="SCALER_CROPPING_TYPE_FREEFORM"/> <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR"/> <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG"/> <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG"/> - <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO" since="29"/> - <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR" since="29"/> <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB"/> <field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB"/> <field name="SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME"/> @@ -16681,8 +16083,9 @@ </class> <class name="android/hardware/camera2/CaptureFailure" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/hardware/camera2/CaptureRequest;IZIJ)V" since="29"/> <method name="getFrameNumber()J"/> - <method name="getPhysicalCameraId()Ljava/lang/String;" since="29"/> <method name="getReason()I"/> <method name="getRequest()Landroid/hardware/camera2/CaptureRequest;"/> <method name="getSequenceId()I"/> @@ -16693,6 +16096,7 @@ <class name="android/hardware/camera2/CaptureRequest" since="21"> <extends name="android/hardware/camera2/CameraMetadata"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;"/> <method name="getTag()Ljava/lang/Object;"/> <method name="isReprocess()Z" since="23"/> @@ -16756,6 +16160,7 @@ </class> <class name="android/hardware/camera2/CaptureRequest$Builder" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addTarget(Landroid/view/Surface;)V"/> <method name="build()Landroid/hardware/camera2/CaptureRequest;"/> <method name="get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;"/> @@ -16767,11 +16172,13 @@ </class> <class name="android/hardware/camera2/CaptureRequest$Key" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> <method name="<init>(Ljava/lang/String;Ljava/lang/Class;)V" since="29"/> <method name="getName()Ljava/lang/String;"/> </class> <class name="android/hardware/camera2/CaptureResult" since="21"> <extends name="android/hardware/camera2/CameraMetadata"/> + <method name="<init>()V"/> <method name="get(Landroid/hardware/camera2/CaptureResult$Key;)Ljava/lang/Object;"/> <method name="getFrameNumber()J"/> <method name="getRequest()Landroid/hardware/camera2/CaptureRequest;"/> @@ -16827,7 +16234,6 @@ <field name="LENS_POSE_TRANSLATION" since="23"/> <field name="LENS_RADIAL_DISTORTION" since="23" deprecated="28"/> <field name="LENS_STATE"/> - <field name="LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID" since="29"/> <field name="NOISE_REDUCTION_MODE"/> <field name="REPROCESS_EFFECTIVE_EXPOSURE_FACTOR" since="23"/> <field name="REQUEST_PIPELINE_DEPTH"/> @@ -16861,6 +16267,7 @@ </class> <class name="android/hardware/camera2/CaptureResult$Key" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> <method name="<init>(Ljava/lang/String;Ljava/lang/Class;)V" since="29"/> <method name="getName()Ljava/lang/String;"/> </class> @@ -16880,11 +16287,14 @@ </class> <class name="android/hardware/camera2/TotalCaptureResult" since="21"> <extends name="android/hardware/camera2/CaptureResult"/> + <method name="<init>()V"/> <method name="getPartialResults()Ljava/util/List;"/> <method name="getPhysicalCameraResults()Ljava/util/Map;" since="28"/> </class> <class name="android/hardware/camera2/params/BlackLevelPattern" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([I)V" since="29"/> <method name="copyTo([II)V"/> <method name="getOffsetForIndex(II)I"/> <field name="COUNT"/> @@ -16899,6 +16309,8 @@ </class> <class name="android/hardware/camera2/params/Face" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/graphics/Rect;I)V" since="29"/> <method name="getBounds()Landroid/graphics/Rect;"/> <method name="getId()I"/> <method name="getLeftEyePosition()Landroid/graphics/Point;"/> @@ -16918,6 +16330,8 @@ </class> <class name="android/hardware/camera2/params/LensShadingMap" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([FII)V" since="29"/> <method name="copyGainFactors([FI)V"/> <method name="getColumnCount()I"/> <method name="getGainFactor(III)F"/> @@ -16926,18 +16340,6 @@ <method name="getRowCount()I"/> <field name="MINIMUM_GAIN_FACTOR"/> </class> - <class name="android/hardware/camera2/params/MandatoryStreamCombination" since="29"> - <extends name="java/lang/Object"/> - <method name="getDescription()Ljava/lang/CharSequence;"/> - <method name="getStreamsInformation()Ljava/util/List;"/> - <method name="isReprocessable()Z"/> - </class> - <class name="android/hardware/camera2/params/MandatoryStreamCombination$MandatoryStreamInformation" since="29"> - <extends name="java/lang/Object"/> - <method name="getAvailableSizes()Ljava/util/List;"/> - <method name="getFormat()I"/> - <method name="isInput()Z"/> - </class> <class name="android/hardware/camera2/params/MeteringRectangle" since="21"> <extends name="java/lang/Object"/> <method name="<init>(IIIII)V"/> @@ -16980,34 +16382,6 @@ <field name="CREATOR"/> <field name="SURFACE_GROUP_ID_NONE"/> </class> - <class name="android/hardware/camera2/params/RecommendedStreamConfigurationMap" since="29"> - <extends name="java/lang/Object"/> - <method name="getHighResolutionOutputSizes(I)Ljava/util/Set;"/> - <method name="getHighSpeedVideoFpsRanges()Ljava/util/Set;"/> - <method name="getHighSpeedVideoFpsRangesFor(Landroid/util/Size;)Ljava/util/Set;"/> - <method name="getHighSpeedVideoSizes()Ljava/util/Set;"/> - <method name="getHighSpeedVideoSizesFor(Landroid/util/Range;)Ljava/util/Set;"/> - <method name="getInputFormats()Ljava/util/Set;"/> - <method name="getInputSizes(I)Ljava/util/Set;"/> - <method name="getOutputFormats()Ljava/util/Set;"/> - <method name="getOutputMinFrameDuration(ILandroid/util/Size;)J"/> - <method name="getOutputMinFrameDuration(Ljava/lang/Class;Landroid/util/Size;)J"/> - <method name="getOutputSizes(I)Ljava/util/Set;"/> - <method name="getOutputSizes(Ljava/lang/Class;)Ljava/util/Set;"/> - <method name="getOutputStallDuration(ILandroid/util/Size;)J"/> - <method name="getOutputStallDuration(Ljava/lang/Class;Landroid/util/Size;)J"/> - <method name="getRecommendedUseCase()I"/> - <method name="getValidOutputFormatsForInput(I)Ljava/util/Set;"/> - <method name="isOutputSupportedFor(I)Z"/> - <method name="isOutputSupportedFor(Landroid/view/Surface;)Z"/> - <field name="USECASE_LOW_LATENCY_SNAPSHOT"/> - <field name="USECASE_PREVIEW"/> - <field name="USECASE_RAW"/> - <field name="USECASE_RECORD"/> - <field name="USECASE_SNAPSHOT"/> - <field name="USECASE_VIDEO_SNAPSHOT"/> - <field name="USECASE_ZSL"/> - </class> <class name="android/hardware/camera2/params/RggbChannelVector" since="21"> <extends name="java/lang/Object"/> <method name="<init>(FFFF)V"/> @@ -17025,7 +16399,6 @@ </class> <class name="android/hardware/camera2/params/SessionConfiguration" since="28"> <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable" since="29"/> <method name="<init>(ILjava/util/List;Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;)V"/> <method name="getExecutor()Ljava/util/concurrent/Executor;"/> <method name="getInputConfiguration()Landroid/hardware/camera2/params/InputConfiguration;"/> @@ -17035,12 +16408,12 @@ <method name="getStateCallback()Landroid/hardware/camera2/CameraCaptureSession$StateCallback;"/> <method name="setInputConfiguration(Landroid/hardware/camera2/params/InputConfiguration;)V"/> <method name="setSessionParameters(Landroid/hardware/camera2/CaptureRequest;)V"/> - <field name="CREATOR" since="29"/> <field name="SESSION_HIGH_SPEED"/> <field name="SESSION_REGULAR"/> </class> <class name="android/hardware/camera2/params/StreamConfigurationMap" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getHighResolutionOutputSizes(I)[Landroid/util/Size;" since="23"/> <method name="getHighSpeedVideoFpsRanges()[Landroid/util/Range;"/> <method name="getHighSpeedVideoFpsRangesFor(Landroid/util/Size;)[Landroid/util/Range;"/> @@ -17075,6 +16448,8 @@ </class> <class name="android/hardware/display/DisplayManager" since="17"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="createVirtualDisplay(Ljava/lang/String;IIILandroid/view/Surface;I)Landroid/hardware/display/VirtualDisplay;" since="19"/> <method name="createVirtualDisplay(Ljava/lang/String;IIILandroid/view/Surface;ILandroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;)Landroid/hardware/display/VirtualDisplay;" since="21"/> <method name="getDisplay(I)Landroid/view/Display;"/> @@ -17097,6 +16472,7 @@ </class> <class name="android/hardware/display/VirtualDisplay" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDisplay()Landroid/view/Display;"/> <method name="getSurface()Landroid/view/Surface;" since="20"/> <method name="release()V"/> @@ -17112,6 +16488,7 @@ </class> <class name="android/hardware/fingerprint/FingerprintManager" since="23" deprecated="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="authenticate(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;Landroid/os/CancellationSignal;ILandroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;Landroid/os/Handler;)V" deprecated="28"/> <method name="hasEnrolledFingerprints()Z" deprecated="28"/> <method name="isHardwareDetected()Z" deprecated="28"/> @@ -17135,27 +16512,29 @@ </class> <class name="android/hardware/fingerprint/FingerprintManager$AuthenticationCallback" since="23" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="onAuthenticationError(ILjava/lang/CharSequence;)V" deprecated="29"/> - <method name="onAuthenticationFailed()V" deprecated="29"/> - <method name="onAuthenticationHelp(ILjava/lang/CharSequence;)V" deprecated="29"/> - <method name="onAuthenticationSucceeded(Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="onAuthenticationError(ILjava/lang/CharSequence;)V"/> + <method name="onAuthenticationFailed()V"/> + <method name="onAuthenticationHelp(ILjava/lang/CharSequence;)V"/> + <method name="onAuthenticationSucceeded(Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;)V"/> </class> <class name="android/hardware/fingerprint/FingerprintManager$AuthenticationResult" since="23" deprecated="28"> <extends name="java/lang/Object"/> - <method name="getCryptoObject()Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;" deprecated="29"/> + <method name="<init>()V"/> + <method name="getCryptoObject()Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;"/> </class> <class name="android/hardware/fingerprint/FingerprintManager$CryptoObject" since="23" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(Ljava/security/Signature;)V" deprecated="29"/> - <method name="<init>(Ljavax/crypto/Cipher;)V" deprecated="29"/> - <method name="<init>(Ljavax/crypto/Mac;)V" deprecated="29"/> - <method name="getCipher()Ljavax/crypto/Cipher;" deprecated="29"/> - <method name="getMac()Ljavax/crypto/Mac;" deprecated="29"/> - <method name="getSignature()Ljava/security/Signature;" deprecated="29"/> + <method name="<init>(Ljava/security/Signature;)V"/> + <method name="<init>(Ljavax/crypto/Cipher;)V"/> + <method name="<init>(Ljavax/crypto/Mac;)V"/> + <method name="getCipher()Ljavax/crypto/Cipher;"/> + <method name="getMac()Ljavax/crypto/Mac;"/> + <method name="getSignature()Ljava/security/Signature;"/> </class> <class name="android/hardware/input/InputManager" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getInputDevice(I)Landroid/view/InputDevice;"/> <method name="getInputDeviceIds()[I"/> <method name="registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V"/> @@ -17171,6 +16550,7 @@ </class> <class name="android/hardware/location/GeofenceHardware" since="18" removed="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addGeofence(IILandroid/hardware/location/GeofenceHardwareRequest;Landroid/hardware/location/GeofenceHardwareCallback;)Z"/> <method name="getMonitoringTypes()[I"/> <method name="getStatusOfMonitoringType(I)I"/> @@ -17226,6 +16606,8 @@ <class name="android/hardware/usb/UsbAccessory" since="12"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([Ljava/lang/String;)V" since="29"/> <method name="getDescription()Ljava/lang/String;"/> <method name="getManufacturer()Ljava/lang/String;"/> <method name="getModel()Ljava/lang/String;"/> @@ -17237,6 +16619,8 @@ <class name="android/hardware/usb/UsbConfiguration" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;II)V" since="29"/> <method name="getId()I"/> <method name="getInterface(I)Landroid/hardware/usb/UsbInterface;"/> <method name="getInterfaceCount()I"/> @@ -17286,6 +16670,8 @@ <class name="android/hardware/usb/UsbDevice" since="12"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="getConfiguration(I)Landroid/hardware/usb/UsbConfiguration;" since="21"/> <method name="getConfigurationCount()I" since="21"/> <method name="getDeviceClass()I"/> @@ -17307,6 +16693,8 @@ </class> <class name="android/hardware/usb/UsbDeviceConnection" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/hardware/usb/UsbDevice;)V" since="29"/> <method name="bulkTransfer(Landroid/hardware/usb/UsbEndpoint;[BII)I"/> <method name="bulkTransfer(Landroid/hardware/usb/UsbEndpoint;[BIII)I" since="18"/> <method name="claimInterface(Landroid/hardware/usb/UsbInterface;Z)Z"/> @@ -17325,6 +16713,8 @@ <class name="android/hardware/usb/UsbEndpoint" since="12"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="getAddress()I"/> <method name="getAttributes()I"/> <method name="getDirection()I"/> @@ -17337,6 +16727,8 @@ <class name="android/hardware/usb/UsbInterface" since="12"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IILjava/lang/String;III)V" since="29"/> <method name="getAlternateSetting()I" since="21"/> <method name="getEndpoint(I)Landroid/hardware/usb/UsbEndpoint;"/> <method name="getEndpointCount()I"/> @@ -17349,6 +16741,7 @@ </class> <class name="android/hardware/usb/UsbManager" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAccessoryList()[Landroid/hardware/usb/UsbAccessory;"/> <method name="getDeviceList()Ljava/util/HashMap;"/> <method name="hasPermission(Landroid/hardware/usb/UsbAccessory;)Z"/> @@ -17381,6 +16774,7 @@ <extends name="java/lang/Object"/> <implements name="android/icu/lang/UCharacterEnums$ECharacterCategory"/> <implements name="android/icu/lang/UCharacterEnums$ECharacterDirection"/> + <method name="<init>()V"/> <method name="charCount(I)I"/> <method name="codePointAt(Ljava/lang/CharSequence;I)I"/> <method name="codePointAt([CI)I"/> @@ -17566,63 +16960,6 @@ <field name="TRAILING_JAMO"/> <field name="VOWEL_JAMO"/> </class> - <class name="android/icu/lang/UCharacter$IndicPositionalCategory" since="29"> - <extends name="java/lang/Object"/> - <field name="BOTTOM"/> - <field name="BOTTOM_AND_LEFT"/> - <field name="BOTTOM_AND_RIGHT"/> - <field name="LEFT"/> - <field name="LEFT_AND_RIGHT"/> - <field name="NA"/> - <field name="OVERSTRUCK"/> - <field name="RIGHT"/> - <field name="TOP"/> - <field name="TOP_AND_BOTTOM"/> - <field name="TOP_AND_BOTTOM_AND_RIGHT"/> - <field name="TOP_AND_LEFT"/> - <field name="TOP_AND_LEFT_AND_RIGHT"/> - <field name="TOP_AND_RIGHT"/> - <field name="VISUAL_ORDER_LEFT"/> - </class> - <class name="android/icu/lang/UCharacter$IndicSyllabicCategory" since="29"> - <extends name="java/lang/Object"/> - <field name="AVAGRAHA"/> - <field name="BINDU"/> - <field name="BRAHMI_JOINING_NUMBER"/> - <field name="CANTILLATION_MARK"/> - <field name="CONSONANT"/> - <field name="CONSONANT_DEAD"/> - <field name="CONSONANT_FINAL"/> - <field name="CONSONANT_HEAD_LETTER"/> - <field name="CONSONANT_INITIAL_POSTFIXED"/> - <field name="CONSONANT_KILLER"/> - <field name="CONSONANT_MEDIAL"/> - <field name="CONSONANT_PLACEHOLDER"/> - <field name="CONSONANT_PRECEDING_REPHA"/> - <field name="CONSONANT_PREFIXED"/> - <field name="CONSONANT_SUBJOINED"/> - <field name="CONSONANT_SUCCEEDING_REPHA"/> - <field name="CONSONANT_WITH_STACKER"/> - <field name="GEMINATION_MARK"/> - <field name="INVISIBLE_STACKER"/> - <field name="JOINER"/> - <field name="MODIFYING_LETTER"/> - <field name="NON_JOINER"/> - <field name="NUKTA"/> - <field name="NUMBER"/> - <field name="NUMBER_JOINER"/> - <field name="OTHER"/> - <field name="PURE_KILLER"/> - <field name="REGISTER_SHIFTER"/> - <field name="SYLLABLE_MODIFIER"/> - <field name="TONE_LETTER"/> - <field name="TONE_MARK"/> - <field name="VIRAMA"/> - <field name="VISARGA"/> - <field name="VOWEL"/> - <field name="VOWEL_DEPENDENT"/> - <field name="VOWEL_INDEPENDENT"/> - </class> <class name="android/icu/lang/UCharacter$JoiningGroup" since="24"> <extends name="java/lang/Object"/> <field name="AFRICAN_FEH" since="26"/> @@ -17812,6 +17149,8 @@ </class> <class name="android/icu/lang/UCharacter$UnicodeBlock" since="24"> <extends name="java/lang/Character$Subset"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;I)V" since="29"/> <method name="forName(Ljava/lang/String;)Landroid/icu/lang/UCharacter$UnicodeBlock;"/> <method name="getID()I"/> <method name="getInstance(I)Landroid/icu/lang/UCharacter$UnicodeBlock;"/> @@ -17986,12 +17325,8 @@ <field name="EARLY_DYNASTIC_CUNEIFORM_ID"/> <field name="EGYPTIAN_HIEROGLYPHS"/> <field name="EGYPTIAN_HIEROGLYPHS_ID"/> - <field name="EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS" since="30"/> - <field name="EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS_ID" since="30"/> <field name="ELBASAN"/> <field name="ELBASAN_ID"/> - <field name="ELYMAIC" since="30"/> - <field name="ELYMAIC_ID" since="30"/> <field name="EMOTICONS"/> <field name="EMOTICONS_ID"/> <field name="ENCLOSED_ALPHANUMERICS"/> @@ -18218,8 +17553,6 @@ <field name="MYANMAR_ID"/> <field name="NABATAEAN"/> <field name="NABATAEAN_ID"/> - <field name="NANDINAGARI" since="30"/> - <field name="NANDINAGARI_ID" since="30"/> <field name="NEWA" since="26"/> <field name="NEWA_ID" since="26"/> <field name="NEW_TAI_LUE"/> @@ -18231,8 +17564,6 @@ <field name="NUMBER_FORMS_ID"/> <field name="NUSHU" since="28"/> <field name="NUSHU_ID" since="28"/> - <field name="NYIAKENG_PUACHUE_HMONG" since="30"/> - <field name="NYIAKENG_PUACHUE_HMONG_ID" since="30"/> <field name="OGHAM"/> <field name="OGHAM_ID"/> <field name="OLD_HUNGARIAN"/> @@ -18263,8 +17594,6 @@ <field name="OSAGE_ID" since="26"/> <field name="OSMANYA"/> <field name="OSMANYA_ID"/> - <field name="OTTOMAN_SIYAQ_NUMBERS" since="30"/> - <field name="OTTOMAN_SIYAQ_NUMBERS_ID" since="30"/> <field name="PAHAWH_HMONG"/> <field name="PAHAWH_HMONG_ID"/> <field name="PALMYRENE"/> @@ -18313,8 +17642,6 @@ <field name="SINHALA_ID"/> <field name="SMALL_FORM_VARIANTS"/> <field name="SMALL_FORM_VARIANTS_ID"/> - <field name="SMALL_KANA_EXTENSION" since="30"/> - <field name="SMALL_KANA_EXTENSION_ID" since="30"/> <field name="SOGDIAN" since="29"/> <field name="SOGDIAN_ID" since="29"/> <field name="SORA_SOMPENG"/> @@ -18351,8 +17678,6 @@ <field name="SUTTON_SIGNWRITING_ID"/> <field name="SYLOTI_NAGRI"/> <field name="SYLOTI_NAGRI_ID"/> - <field name="SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A" since="30"/> - <field name="SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A_ID" since="30"/> <field name="SYRIAC"/> <field name="SYRIAC_ID"/> <field name="SYRIAC_SUPPLEMENT" since="28"/> @@ -18375,8 +17700,6 @@ <field name="TAKRI_ID"/> <field name="TAMIL"/> <field name="TAMIL_ID"/> - <field name="TAMIL_SUPPLEMENT" since="30"/> - <field name="TAMIL_SUPPLEMENT_ID" since="30"/> <field name="TANGUT" since="26"/> <field name="TANGUT_COMPONENTS" since="26"/> <field name="TANGUT_COMPONENTS_ID" since="26"/> @@ -18411,8 +17734,6 @@ <field name="VEDIC_EXTENSIONS_ID"/> <field name="VERTICAL_FORMS"/> <field name="VERTICAL_FORMS_ID"/> - <field name="WANCHO" since="30"/> - <field name="WANCHO_ID" since="30"/> <field name="WARANG_CITI"/> <field name="WARANG_CITI_ID"/> <field name="YIJING_HEXAGRAM_SYMBOLS"/> @@ -18424,13 +17745,6 @@ <field name="ZANABAZAR_SQUARE" since="28"/> <field name="ZANABAZAR_SQUARE_ID" since="28"/> </class> - <class name="android/icu/lang/UCharacter$VerticalOrientation" since="29"> - <extends name="java/lang/Object"/> - <field name="ROTATED"/> - <field name="TRANSFORMED_ROTATED"/> - <field name="TRANSFORMED_UPRIGHT"/> - <field name="UPRIGHT"/> - </class> <class name="android/icu/lang/UCharacter$WordBreak" since="24"> <extends name="java/lang/Object"/> <field name="ALETTER"/> @@ -18460,15 +17774,18 @@ <class name="android/icu/lang/UCharacterCategory" since="24"> <extends name="java/lang/Object"/> <implements name="android/icu/lang/UCharacterEnums$ECharacterCategory"/> + <method name="<init>()V"/> <method name="toString(I)Ljava/lang/String;"/> </class> <class name="android/icu/lang/UCharacterDirection" since="24"> <extends name="java/lang/Object"/> <implements name="android/icu/lang/UCharacterEnums$ECharacterDirection"/> + <method name="<init>()V"/> <method name="toString(I)Ljava/lang/String;"/> </class> <class name="android/icu/lang/UCharacterEnums" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/icu/lang/UCharacterEnums$ECharacterCategory" since="24"> <extends name="java/lang/Object"/> @@ -18605,8 +17922,6 @@ <field name="IDS_TRINARY_OPERATOR"/> <field name="ID_CONTINUE"/> <field name="ID_START"/> - <field name="INDIC_POSITIONAL_CATEGORY" since="29"/> - <field name="INDIC_SYLLABIC_CATEGORY" since="29"/> <field name="INT_START"/> <field name="JOINING_GROUP"/> <field name="JOINING_TYPE"/> @@ -18660,7 +17975,6 @@ <field name="UPPERCASE"/> <field name="UPPERCASE_MAPPING"/> <field name="VARIATION_SELECTOR"/> - <field name="VERTICAL_ORIENTATION" since="29"/> <field name="WHITE_SPACE"/> <field name="WORD_BREAK"/> <field name="XID_CONTINUE"/> @@ -18673,6 +17987,7 @@ </class> <class name="android/icu/lang/UScript" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="breaksBetweenLetters(I)Z"/> <method name="getCode(Landroid/icu/util/ULocale;)[I"/> <method name="getCode(Ljava/lang/String;)[I"/> @@ -18727,7 +18042,6 @@ <field name="EASTERN_SYRIAC"/> <field name="EGYPTIAN_HIEROGLYPHS"/> <field name="ELBASAN"/> - <field name="ELYMAIC" since="30"/> <field name="ESTRANGELO_SYRIAC"/> <field name="ETHIOPIC"/> <field name="GEORGIAN"/> @@ -18807,12 +18121,10 @@ <field name="MYANMAR"/> <field name="NABATAEAN"/> <field name="NAKHI_GEBA"/> - <field name="NANDINAGARI" since="30"/> <field name="NEWA" since="26"/> <field name="NEW_TAI_LUE"/> <field name="NKO"/> <field name="NUSHU"/> - <field name="NYIAKENG_PUACHUE_HMONG" since="30"/> <field name="OGHAM"/> <field name="OLD_CHURCH_SLAVONIC_CYRILLIC"/> <field name="OLD_HUNGARIAN"/> @@ -18876,7 +18188,6 @@ <field name="UNWRITTEN_LANGUAGES"/> <field name="VAI"/> <field name="VISIBLE_SPEECH"/> - <field name="WANCHO" since="30"/> <field name="WARANG_CITI"/> <field name="WESTERN_SYRIAC"/> <field name="WOLEAI"/> @@ -19019,6 +18330,8 @@ <class name="android/icu/text/AlphabeticIndex$Bucket" since="24"> <extends name="java/lang/Object"/> <implements name="java/lang/Iterable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;)V" since="29"/> <method name="getLabel()Ljava/lang/String;"/> <method name="getLabelType()Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;"/> <method name="size()I"/> @@ -19035,123 +18348,18 @@ <class name="android/icu/text/AlphabeticIndex$ImmutableIndex" since="24"> <extends name="java/lang/Object"/> <implements name="java/lang/Iterable"/> + <method name="<init>()V"/> <method name="getBucket(I)Landroid/icu/text/AlphabeticIndex$Bucket;"/> <method name="getBucketCount()I"/> <method name="getBucketIndex(Ljava/lang/CharSequence;)I"/> </class> <class name="android/icu/text/AlphabeticIndex$Record" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/CharSequence;Ljava/lang/Object;)V" since="29"/> <method name="getData()Ljava/lang/Object;"/> <method name="getName()Ljava/lang/CharSequence;"/> </class> - <class name="android/icu/text/Bidi" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="<init>(II)V"/> - <method name="<init>(Ljava/lang/String;I)V"/> - <method name="<init>(Ljava/text/AttributedCharacterIterator;)V"/> - <method name="<init>([CI[BIII)V"/> - <method name="baseIsLeftToRight()Z"/> - <method name="countParagraphs()I"/> - <method name="countRuns()I"/> - <method name="createLineBidi(II)Landroid/icu/text/Bidi;"/> - <method name="getBaseDirection(Ljava/lang/CharSequence;)B"/> - <method name="getBaseLevel()I"/> - <method name="getCustomClassifier()Landroid/icu/text/BidiClassifier;"/> - <method name="getCustomizedClass(I)I"/> - <method name="getDirection()B"/> - <method name="getLength()I"/> - <method name="getLevelAt(I)B"/> - <method name="getLevels()[B"/> - <method name="getLogicalIndex(I)I"/> - <method name="getLogicalMap()[I"/> - <method name="getLogicalRun(I)Landroid/icu/text/BidiRun;"/> - <method name="getParaLevel()B"/> - <method name="getParagraph(I)Landroid/icu/text/BidiRun;"/> - <method name="getParagraphByIndex(I)Landroid/icu/text/BidiRun;"/> - <method name="getParagraphIndex(I)I"/> - <method name="getProcessedLength()I"/> - <method name="getReorderingMode()I"/> - <method name="getReorderingOptions()I"/> - <method name="getResultLength()I"/> - <method name="getRunCount()I"/> - <method name="getRunLevel(I)I"/> - <method name="getRunLimit(I)I"/> - <method name="getRunStart(I)I"/> - <method name="getText()[C"/> - <method name="getTextAsString()Ljava/lang/String;"/> - <method name="getVisualIndex(I)I"/> - <method name="getVisualMap()[I"/> - <method name="getVisualRun(I)Landroid/icu/text/BidiRun;"/> - <method name="invertMap([I)[I"/> - <method name="isInverse()Z"/> - <method name="isLeftToRight()Z"/> - <method name="isMixed()Z"/> - <method name="isOrderParagraphsLTR()Z"/> - <method name="isRightToLeft()Z"/> - <method name="orderParagraphsLTR(Z)V"/> - <method name="reorderLogical([B)[I"/> - <method name="reorderVisual([B)[I"/> - <method name="reorderVisually([BI[Ljava/lang/Object;II)V"/> - <method name="requiresBidi([CII)Z"/> - <method name="setContext(Ljava/lang/String;Ljava/lang/String;)V"/> - <method name="setCustomClassifier(Landroid/icu/text/BidiClassifier;)V"/> - <method name="setInverse(Z)V"/> - <method name="setLine(II)Landroid/icu/text/Bidi;"/> - <method name="setPara(Ljava/lang/String;B[B)V"/> - <method name="setPara(Ljava/text/AttributedCharacterIterator;)V"/> - <method name="setPara([CB[B)V"/> - <method name="setReorderingMode(I)V"/> - <method name="setReorderingOptions(I)V"/> - <method name="writeReordered(I)Ljava/lang/String;"/> - <method name="writeReverse(Ljava/lang/String;I)Ljava/lang/String;"/> - <field name="DIRECTION_DEFAULT_LEFT_TO_RIGHT"/> - <field name="DIRECTION_DEFAULT_RIGHT_TO_LEFT"/> - <field name="DIRECTION_LEFT_TO_RIGHT"/> - <field name="DIRECTION_RIGHT_TO_LEFT"/> - <field name="DO_MIRRORING"/> - <field name="INSERT_LRM_FOR_NUMERIC"/> - <field name="KEEP_BASE_COMBINING"/> - <field name="LEVEL_DEFAULT_LTR"/> - <field name="LEVEL_DEFAULT_RTL"/> - <field name="LEVEL_OVERRIDE"/> - <field name="LTR"/> - <field name="MAP_NOWHERE"/> - <field name="MAX_EXPLICIT_LEVEL"/> - <field name="MIXED"/> - <field name="NEUTRAL"/> - <field name="OPTION_DEFAULT"/> - <field name="OPTION_INSERT_MARKS"/> - <field name="OPTION_REMOVE_CONTROLS"/> - <field name="OPTION_STREAMING"/> - <field name="OUTPUT_REVERSE"/> - <field name="REMOVE_BIDI_CONTROLS"/> - <field name="REORDER_DEFAULT"/> - <field name="REORDER_GROUP_NUMBERS_WITH_R"/> - <field name="REORDER_INVERSE_FOR_NUMBERS_SPECIAL"/> - <field name="REORDER_INVERSE_LIKE_DIRECT"/> - <field name="REORDER_INVERSE_NUMBERS_AS_L"/> - <field name="REORDER_NUMBERS_SPECIAL"/> - <field name="REORDER_RUNS_ONLY"/> - <field name="RTL"/> - </class> - <class name="android/icu/text/BidiClassifier" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Ljava/lang/Object;)V"/> - <method name="classify(I)I"/> - <method name="getContext()Ljava/lang/Object;"/> - <method name="setContext(Ljava/lang/Object;)V"/> - </class> - <class name="android/icu/text/BidiRun" since="29"> - <extends name="java/lang/Object"/> - <method name="getDirection()B"/> - <method name="getEmbeddingLevel()B"/> - <method name="getLength()I"/> - <method name="getLimit()I"/> - <method name="getStart()I"/> - <method name="isEvenRun()Z"/> - <method name="isOddRun()Z"/> - </class> <class name="android/icu/text/BreakIterator" since="24"> <extends name="java/lang/Object"/> <implements name="java/lang/Cloneable"/> @@ -19172,9 +18380,9 @@ <method name="getSentenceInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator;"/> <method name="getSentenceInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator;"/> <method name="getText()Ljava/text/CharacterIterator;"/> - <method name="getTitleInstance()Landroid/icu/text/BreakIterator;" deprecated="29"/> - <method name="getTitleInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator;" deprecated="29"/> - <method name="getTitleInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator;" deprecated="29"/> + <method name="getTitleInstance()Landroid/icu/text/BreakIterator;"/> + <method name="getTitleInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator;"/> + <method name="getTitleInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator;"/> <method name="getWordInstance()Landroid/icu/text/BreakIterator;"/> <method name="getWordInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator;"/> <method name="getWordInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator;"/> @@ -19184,14 +18392,13 @@ <method name="next(I)I"/> <method name="preceding(I)I"/> <method name="previous()I"/> - <method name="setText(Ljava/lang/CharSequence;)V" since="29"/> <method name="setText(Ljava/lang/String;)V"/> <method name="setText(Ljava/text/CharacterIterator;)V"/> <field name="DONE"/> <field name="KIND_CHARACTER"/> <field name="KIND_LINE"/> <field name="KIND_SENTENCE"/> - <field name="KIND_TITLE" deprecated="29"/> + <field name="KIND_TITLE"/> <field name="KIND_WORD"/> <field name="WORD_IDEO"/> <field name="WORD_IDEO_LIMIT"/> @@ -19204,46 +18411,10 @@ <field name="WORD_NUMBER"/> <field name="WORD_NUMBER_LIMIT"/> </class> - <class name="android/icu/text/CaseMap" since="29"> - <extends name="java/lang/Object"/> - <method name="fold()Landroid/icu/text/CaseMap$Fold;"/> - <method name="omitUnchangedText()Landroid/icu/text/CaseMap;"/> - <method name="toLower()Landroid/icu/text/CaseMap$Lower;"/> - <method name="toTitle()Landroid/icu/text/CaseMap$Title;"/> - <method name="toUpper()Landroid/icu/text/CaseMap$Upper;"/> - </class> - <class name="android/icu/text/CaseMap$Fold" since="29"> - <extends name="android/icu/text/CaseMap"/> - <method name="apply(Ljava/lang/CharSequence;)Ljava/lang/String;"/> - <method name="apply(Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;"/> - <method name="omitUnchangedText()Landroid/icu/text/CaseMap$Fold;"/> - <method name="turkic()Landroid/icu/text/CaseMap$Fold;"/> - </class> - <class name="android/icu/text/CaseMap$Lower" since="29"> - <extends name="android/icu/text/CaseMap"/> - <method name="apply(Ljava/util/Locale;Ljava/lang/CharSequence;)Ljava/lang/String;"/> - <method name="apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;"/> - <method name="omitUnchangedText()Landroid/icu/text/CaseMap$Lower;"/> - </class> - <class name="android/icu/text/CaseMap$Title" since="29"> - <extends name="android/icu/text/CaseMap"/> - <method name="adjustToCased()Landroid/icu/text/CaseMap$Title;"/> - <method name="apply(Ljava/util/Locale;Landroid/icu/text/BreakIterator;Ljava/lang/CharSequence;)Ljava/lang/String;"/> - <method name="apply(Ljava/util/Locale;Landroid/icu/text/BreakIterator;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;"/> - <method name="noBreakAdjustment()Landroid/icu/text/CaseMap$Title;"/> - <method name="noLowercase()Landroid/icu/text/CaseMap$Title;"/> - <method name="omitUnchangedText()Landroid/icu/text/CaseMap$Title;"/> - <method name="sentences()Landroid/icu/text/CaseMap$Title;"/> - <method name="wholeString()Landroid/icu/text/CaseMap$Title;"/> - </class> - <class name="android/icu/text/CaseMap$Upper" since="29"> - <extends name="android/icu/text/CaseMap"/> - <method name="apply(Ljava/util/Locale;Ljava/lang/CharSequence;)Ljava/lang/String;"/> - <method name="apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;"/> - <method name="omitUnchangedText()Landroid/icu/text/CaseMap$Upper;"/> - </class> <class name="android/icu/text/CollationElementIterator" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/icu/text/RuleBasedCollator;)V" since="29"/> <method name="getMaxExpansion(I)I"/> <method name="getOffset()I"/> <method name="next()I"/> @@ -19272,6 +18443,7 @@ </class> <class name="android/icu/text/CollationKey$BoundMode" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="LOWER"/> <field name="UPPER"/> <field name="UPPER_LONG"/> @@ -19337,6 +18509,8 @@ </class> <class name="android/icu/text/CompactDecimalFormat" since="24"> <extends name="android/icu/text/DecimalFormat"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/icu/util/ULocale;Landroid/icu/text/CompactDecimalFormat$CompactStyle;)V" since="29"/> <method name="getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/CompactDecimalFormat$CompactStyle;)Landroid/icu/text/CompactDecimalFormat;"/> <method name="getInstance(Ljava/util/Locale;Landroid/icu/text/CompactDecimalFormat$CompactStyle;)Landroid/icu/text/CompactDecimalFormat;"/> </class> @@ -19523,7 +18697,6 @@ <field name="PARSE_ALLOW_WHITESPACE"/> <field name="PARSE_MULTIPLE_PATTERNS_FOR_MATCH" since="26"/> <field name="PARSE_PARTIAL_LITERAL_MATCH" since="26"/> - <field name="PARSE_PARTIAL_MATCH" since="28" removed="29"/> </class> <class name="android/icu/text/DateFormat$Field" since="24"> <extends name="java/text/Format$Field"/> @@ -19612,6 +18785,7 @@ </class> <class name="android/icu/text/DateIntervalFormat" since="24"> <extends name="android/icu/text/UFormat"/> + <method name="<init>()V"/> <method name="format(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;"/> <method name="format(Landroid/icu/util/DateInterval;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;"/> <method name="getDateFormat()Landroid/icu/text/DateFormat;"/> @@ -19667,7 +18841,6 @@ <method name="getDateTimeFormat()Ljava/lang/String;"/> <method name="getDecimal()Ljava/lang/String;"/> <method name="getEmptyInstance()Landroid/icu/text/DateTimePatternGenerator;"/> - <method name="getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String;" since="30"/> <method name="getInstance()Landroid/icu/text/DateTimePatternGenerator;"/> <method name="getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;"/> <method name="getInstance(Ljava/util/Locale;)Landroid/icu/text/DateTimePatternGenerator;"/> @@ -19699,14 +18872,6 @@ <field name="YEAR"/> <field name="ZONE"/> </class> - <class name="android/icu/text/DateTimePatternGenerator$DisplayWidth" since="30"> - <extends name="java/lang/Enum"/> - <method name="valueOf(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;"/> - <method name="values()[Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;"/> - <field name="ABBREVIATED"/> - <field name="NARROW"/> - <field name="WIDE"/> - </class> <class name="android/icu/text/DateTimePatternGenerator$PatternInfo" since="24"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -19792,8 +18957,6 @@ <method name="<init>()V"/> <method name="<init>(Landroid/icu/util/ULocale;)V"/> <method name="<init>(Ljava/util/Locale;)V"/> - <method name="forNumberingSystem(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols;" since="29"/> - <method name="forNumberingSystem(Ljava/util/Locale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols;" since="29"/> <method name="getAvailableLocales()[Ljava/util/Locale;"/> <method name="getCurrency()Landroid/icu/util/Currency;"/> <method name="getCurrencySymbol()Ljava/lang/String;"/> @@ -19892,37 +19055,9 @@ <field name="DISPLAY_LENGTH"/> <field name="SUBSTITUTE_HANDLING" since="28"/> </class> - <class name="android/icu/text/Edits" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="addReplace(II)V"/> - <method name="addUnchanged(I)V"/> - <method name="getCoarseChangesIterator()Landroid/icu/text/Edits$Iterator;"/> - <method name="getCoarseIterator()Landroid/icu/text/Edits$Iterator;"/> - <method name="getFineChangesIterator()Landroid/icu/text/Edits$Iterator;"/> - <method name="getFineIterator()Landroid/icu/text/Edits$Iterator;"/> - <method name="hasChanges()Z"/> - <method name="lengthDelta()I"/> - <method name="mergeAndAppend(Landroid/icu/text/Edits;Landroid/icu/text/Edits;)Landroid/icu/text/Edits;"/> - <method name="numberOfChanges()I"/> - <method name="reset()V"/> - </class> - <class name="android/icu/text/Edits$Iterator" since="29"> - <extends name="java/lang/Object"/> - <method name="destinationIndex()I"/> - <method name="destinationIndexFromSourceIndex(I)I"/> - <method name="findDestinationIndex(I)Z"/> - <method name="findSourceIndex(I)Z"/> - <method name="hasChange()Z"/> - <method name="newLength()I"/> - <method name="next()Z"/> - <method name="oldLength()I"/> - <method name="replacementIndex()I"/> - <method name="sourceIndex()I"/> - <method name="sourceIndexFromDestinationIndex(I)I"/> - </class> <class name="android/icu/text/IDNA" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" deprecated="29"/> <method name="getUTS46Instance(I)Landroid/icu/text/IDNA;"/> <method name="labelToASCII(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Landroid/icu/text/IDNA$Info;)Ljava/lang/StringBuilder;"/> <method name="labelToUnicode(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Landroid/icu/text/IDNA$Info;)Ljava/lang/StringBuilder;"/> @@ -19965,6 +19100,8 @@ </class> <class name="android/icu/text/ListFormatter" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" since="29" deprecated="29"/> <method name="format(Ljava/util/Collection;)Ljava/lang/String;"/> <method name="format([Ljava/lang/Object;)Ljava/lang/String;"/> <method name="getInstance()Landroid/icu/text/ListFormatter;"/> @@ -19974,6 +19111,7 @@ </class> <class name="android/icu/text/LocaleDisplayNames" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" deprecated="29"/> <method name="getContext(Landroid/icu/text/DisplayContext$Type;)Landroid/icu/text/DisplayContext;"/> <method name="getDialectHandling()Landroid/icu/text/LocaleDisplayNames$DialectHandling;"/> <method name="getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/LocaleDisplayNames;"/> @@ -20013,6 +19151,8 @@ </class> <class name="android/icu/text/MeasureFormat" since="24"> <extends name="android/icu/text/UFormat"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;)V" since="29"/> <method name="formatMeasurePerUnit(Landroid/icu/util/Measure;Landroid/icu/util/MeasureUnit;Ljava/lang/StringBuilder;Ljava/text/FieldPosition;)Ljava/lang/StringBuilder;" since="26"/> <method name="formatMeasures(Ljava/lang/StringBuilder;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)Ljava/lang/StringBuilder;"/> <method name="formatMeasures([Landroid/icu/util/Measure;)Ljava/lang/String;"/> @@ -20027,7 +19167,7 @@ <method name="getNumberFormat()Landroid/icu/text/NumberFormat;"/> <method name="getUnitDisplayName(Landroid/icu/util/MeasureUnit;)Ljava/lang/String;" since="28"/> <method name="getWidth()Landroid/icu/text/MeasureFormat$FormatWidth;"/> - <method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Landroid/icu/util/Measure;" removed="30"/> + <method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Landroid/icu/util/Measure;"/> </class> <class name="android/icu/text/MeasureFormat$FormatWidth" since="24"> <extends name="java/lang/Enum"/> @@ -20132,6 +19272,8 @@ </class> <class name="android/icu/text/MessagePattern$Part" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/icu/text/MessagePattern$Part$Type;III)V" since="29"/> <method name="getArgType()Landroid/icu/text/MessagePattern$ArgType;"/> <method name="getIndex()I"/> <method name="getLength()I"/> @@ -20162,6 +19304,7 @@ <class name="android/icu/text/Normalizer" since="24"> <extends name="java/lang/Object"/> <implements name="java/lang/Cloneable"/> + <method name="<init>()V"/> <method name="compare(III)I"/> <method name="compare(ILjava/lang/String;I)I"/> <method name="compare(Ljava/lang/String;Ljava/lang/String;I)I"/> @@ -20178,9 +19321,12 @@ </class> <class name="android/icu/text/Normalizer$QuickCheckResult" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> </class> <class name="android/icu/text/Normalizer2" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" deprecated="29"/> <method name="append(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;"/> <method name="composePair(II)I"/> <method name="getCombiningClass(I)I"/> @@ -20315,7 +19461,6 @@ <method name="getRadix()I"/> <method name="isAlgorithmic()Z"/> <method name="isValidDigitString(Ljava/lang/String;)Z"/> - <field name="LATIN" since="29"/> </class> <class name="android/icu/text/PluralFormat" since="24"> <extends name="android/icu/text/UFormat"/> @@ -20342,6 +19487,7 @@ <class name="android/icu/text/PluralRules" since="24"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="createRules(Ljava/lang/String;)Landroid/icu/text/PluralRules;"/> <method name="equals(Landroid/icu/text/PluralRules;)Z"/> <method name="forLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/PluralRules;"/> @@ -20372,6 +19518,8 @@ </class> <class name="android/icu/text/RelativeDateTimeFormatter" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;)V" since="29"/> <method name="combineDateAndTime(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> <method name="format(DLandroid/icu/text/RelativeDateTimeFormatter$Direction;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;)Ljava/lang/String;"/> <method name="format(DLandroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;)Ljava/lang/String;" since="28"/> @@ -20396,7 +19544,6 @@ <field name="MONDAY"/> <field name="MONTH"/> <field name="NOW"/> - <field name="QUARTER" since="28" removed="29"/> <field name="SATURDAY"/> <field name="SUNDAY"/> <field name="THURSDAY"/> @@ -20444,7 +19591,6 @@ <field name="HOURS"/> <field name="MINUTES"/> <field name="MONTHS"/> - <field name="QUARTERS" since="28" removed="29"/> <field name="SECONDS"/> <field name="WEEKS"/> <field name="YEARS"/> @@ -20501,6 +19647,7 @@ </class> <class name="android/icu/text/ScientificNumberFormatter" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="format(Ljava/lang/Object;)Ljava/lang/String;"/> <method name="getMarkupInstance(Landroid/icu/text/DecimalFormat;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/ScientificNumberFormatter;"/> <method name="getMarkupInstance(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/ScientificNumberFormatter;"/> @@ -20709,6 +19856,7 @@ <class name="android/icu/text/TimeZoneNames" since="24"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="getAvailableMetaZoneIDs()Ljava/util/Set;"/> <method name="getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set;"/> <method name="getDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;J)Ljava/lang/String;"/> @@ -20733,51 +19881,6 @@ <field name="SHORT_GENERIC"/> <field name="SHORT_STANDARD"/> </class> - <class name="android/icu/text/Transliterator" since="29"> - <extends name="java/lang/Object"/> - <method name="createFromRules(Ljava/lang/String;Ljava/lang/String;I)Landroid/icu/text/Transliterator;"/> - <method name="filteredTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V"/> - <method name="finishTransliteration(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;)V"/> - <method name="getAvailableIDs()Ljava/util/Enumeration;"/> - <method name="getAvailableSources()Ljava/util/Enumeration;"/> - <method name="getAvailableTargets(Ljava/lang/String;)Ljava/util/Enumeration;"/> - <method name="getAvailableVariants(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Enumeration;"/> - <method name="getDisplayName(Ljava/lang/String;)Ljava/lang/String;"/> - <method name="getDisplayName(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;"/> - <method name="getDisplayName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;"/> - <method name="getElements()[Landroid/icu/text/Transliterator;"/> - <method name="getFilter()Landroid/icu/text/UnicodeFilter;"/> - <method name="getID()Ljava/lang/String;"/> - <method name="getInstance(Ljava/lang/String;)Landroid/icu/text/Transliterator;"/> - <method name="getInstance(Ljava/lang/String;I)Landroid/icu/text/Transliterator;"/> - <method name="getInverse()Landroid/icu/text/Transliterator;"/> - <method name="getMaximumContextLength()I"/> - <method name="getSourceSet()Landroid/icu/text/UnicodeSet;"/> - <method name="getTargetSet()Landroid/icu/text/UnicodeSet;"/> - <method name="setFilter(Landroid/icu/text/UnicodeFilter;)V"/> - <method name="toRules(Z)Ljava/lang/String;"/> - <method name="transliterate(Landroid/icu/text/Replaceable;)V"/> - <method name="transliterate(Landroid/icu/text/Replaceable;II)I"/> - <method name="transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;)V"/> - <method name="transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;I)V"/> - <method name="transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Ljava/lang/String;)V"/> - <method name="transliterate(Ljava/lang/String;)Ljava/lang/String;"/> - <field name="FORWARD"/> - <field name="REVERSE"/> - </class> - <class name="android/icu/text/Transliterator$Position" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="<init>(III)V"/> - <method name="<init>(IIII)V"/> - <method name="<init>(Landroid/icu/text/Transliterator$Position;)V"/> - <method name="set(Landroid/icu/text/Transliterator$Position;)V"/> - <method name="validate(I)V"/> - <field name="contextLimit"/> - <field name="contextStart"/> - <field name="limit"/> - <field name="start"/> - </class> <class name="android/icu/text/UCharacterIterator" since="24"> <extends name="java/lang/Object"/> <implements name="java/lang/Cloneable"/> @@ -20814,6 +19917,7 @@ <class name="android/icu/text/UnicodeFilter" since="24"> <extends name="java/lang/Object"/> <implements name="android/icu/text/UnicodeMatcher"/> + <method name="<init>()V" deprecated="29"/> <method name="contains(I)Z"/> </class> <class name="android/icu/text/UnicodeMatcher" since="24"> @@ -20935,6 +20039,7 @@ </class> <class name="android/icu/text/UnicodeSet$EntryRange" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="codepoint"/> <field name="codepointEnd"/> </class> @@ -21005,6 +20110,18 @@ <method name="<init>(Ljava/util/Locale;)V"/> <field name="BE"/> </class> + <class name="android/icu/util/CECalendar" since="24" removed="29"> + <extends name="android/icu/util/Calendar"/> + <method name="<init>()V"/> + <method name="<init>(III)V"/> + <method name="<init>(IIIIII)V"/> + <method name="<init>(Landroid/icu/util/TimeZone;)V"/> + <method name="<init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V"/> + <method name="<init>(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V"/> + <method name="<init>(Landroid/icu/util/ULocale;)V"/> + <method name="<init>(Ljava/util/Date;)V"/> + <method name="<init>(Ljava/util/Locale;)V"/> + </class> <class name="android/icu/util/Calendar" since="24"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> @@ -21220,7 +20337,8 @@ <method name="handleGetDateFormat(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;"/> </class> <class name="android/icu/util/CopticCalendar" since="24"> - <extends name="android/icu/util/Calendar"/> + <extends name="android/icu/util/CECalendar" removed="29"/> + <extends name="android/icu/util/Calendar" since="29"/> <method name="<init>()V"/> <method name="<init>(III)V"/> <method name="<init>(IIIIII)V"/> @@ -21247,7 +20365,6 @@ <class name="android/icu/util/Currency" since="24"> <extends name="android/icu/util/MeasureUnit"/> <method name="<init>(Ljava/lang/String;)V"/> - <method name="fromJavaCurrency(Ljava/util/Currency;)Landroid/icu/util/Currency;" since="29"/> <method name="getAvailableCurrencies()Ljava/util/Set;"/> <method name="getAvailableCurrencyCodes(Landroid/icu/util/ULocale;Ljava/util/Date;)[Ljava/lang/String;"/> <method name="getAvailableCurrencyCodes(Ljava/util/Locale;Ljava/util/Date;)[Ljava/lang/String;"/> @@ -21273,9 +20390,7 @@ <method name="getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String;"/> <method name="getSymbol(Ljava/util/Locale;)Ljava/lang/String;"/> <method name="isAvailable(Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;)Z"/> - <method name="toJavaCurrency()Ljava/util/Currency;" since="29"/> <field name="LONG_NAME"/> - <field name="NARROW_SYMBOL_NAME" since="30"/> <field name="PLURAL_LONG_NAME"/> <field name="SYMBOL_NAME"/> </class> @@ -21289,9 +20404,7 @@ <class name="android/icu/util/CurrencyAmount" since="24"> <extends name="android/icu/util/Measure"/> <method name="<init>(DLandroid/icu/util/Currency;)V"/> - <method name="<init>(DLjava/util/Currency;)V" since="29"/> <method name="<init>(Ljava/lang/Number;Landroid/icu/util/Currency;)V"/> - <method name="<init>(Ljava/lang/Number;Ljava/util/Currency;)V" since="29"/> <method name="getCurrency()Landroid/icu/util/Currency;"/> </class> <class name="android/icu/util/DateInterval" since="24"> @@ -21302,7 +20415,8 @@ <method name="getToDate()J"/> </class> <class name="android/icu/util/EthiopicCalendar" since="26"> - <extends name="android/icu/util/Calendar"/> + <extends name="android/icu/util/CECalendar" removed="29"/> + <extends name="android/icu/util/Calendar" since="29"/> <method name="<init>()V"/> <method name="<init>(III)V"/> <method name="<init>(IIIIII)V"/> @@ -21465,15 +20579,15 @@ <method name="<init>(Landroid/icu/util/ULocale;)V"/> <method name="<init>(Ljava/util/Date;)V"/> <method name="<init>(Ljava/util/Locale;)V"/> - <field name="CURRENT_ERA" deprecated="29" removed="30"/> + <field name="CURRENT_ERA"/> <field name="HEISEI"/> <field name="MEIJI"/> - <field name="REIWA" since="30"/> <field name="SHOWA"/> <field name="TAISHO"/> </class> <class name="android/icu/util/LocaleData" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getCLDRVersion()Landroid/icu/util/VersionInfo;"/> <method name="getDelimiter(I)Ljava/lang/String;"/> <method name="getInstance()Landroid/icu/util/LocaleData;"/> @@ -21489,12 +20603,15 @@ </class> <class name="android/icu/util/LocaleData$MeasurementSystem" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="SI"/> <field name="UK"/> <field name="US"/> </class> <class name="android/icu/util/LocaleData$PaperSize" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(II)V" since="29"/> <method name="getHeight()I"/> <method name="getWidth()I"/> </class> @@ -21507,6 +20624,8 @@ <class name="android/icu/util/MeasureUnit" since="24"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;)V" since="29" deprecated="29"/> <method name="getAvailable()Ljava/util/Set;"/> <method name="getAvailable(Ljava/lang/String;)Ljava/util/Set;"/> <method name="getAvailableTypes()Ljava/util/Set;"/> @@ -21682,6 +20801,8 @@ </class> <class name="android/icu/util/TimeUnit" since="24"> <extends name="android/icu/util/MeasureUnit"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="values()[Landroid/icu/util/TimeUnit;"/> </class> <class name="android/icu/util/TimeZone" since="24"> @@ -21895,6 +21016,7 @@ </class> <class name="android/icu/util/UniversalTimeScale" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="bigDecimalFrom(DI)Landroid/icu/math/BigDecimal;"/> <method name="bigDecimalFrom(JI)Landroid/icu/math/BigDecimal;"/> <method name="bigDecimalFrom(Landroid/icu/math/BigDecimal;I)Landroid/icu/math/BigDecimal;"/> @@ -21937,6 +21059,8 @@ <class name="android/icu/util/VersionInfo" since="24"> <extends name="java/lang/Object"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="compareTo(Landroid/icu/util/VersionInfo;)I"/> <method name="getInstance(I)Landroid/icu/util/VersionInfo;"/> <method name="getInstance(II)Landroid/icu/util/VersionInfo;"/> @@ -21952,8 +21076,6 @@ <field name="UCOL_RUNTIME_VERSION"/> <field name="UNICODE_10_0" since="28"/> <field name="UNICODE_11_0" since="29"/> - <field name="UNICODE_12_0" since="30"/> - <field name="UNICODE_12_1" since="30"/> <field name="UNICODE_1_0"/> <field name="UNICODE_1_0_1"/> <field name="UNICODE_1_1_0"/> @@ -22026,7 +21148,7 @@ <method name="getCurrentInputConnection()Landroid/view/inputmethod/InputConnection;"/> <method name="getCurrentInputEditorInfo()Landroid/view/inputmethod/EditorInfo;"/> <method name="getCurrentInputStarted()Z"/> - <method name="getInputMethodWindowRecommendedHeight()I" since="21" deprecated="29"/> + <method name="getInputMethodWindowRecommendedHeight()I" since="21"/> <method name="getLayoutInflater()Landroid/view/LayoutInflater;"/> <method name="getMaxWidth()I"/> <method name="getTextForImeAction(I)Ljava/lang/CharSequence;"/> @@ -22068,7 +21190,7 @@ <method name="onUpdateExtractingViews(Landroid/view/inputmethod/EditorInfo;)V"/> <method name="onUpdateExtractingVisibility(Landroid/view/inputmethod/EditorInfo;)V"/> <method name="onUpdateSelection(IIIIII)V"/> - <method name="onViewClicked(Z)V" since="14" deprecated="29"/> + <method name="onViewClicked(Z)V" since="14"/> <method name="onWindowHidden()V"/> <method name="onWindowShown()V"/> <method name="requestHideSelf(I)V"/> @@ -22116,119 +21238,119 @@ <field name="touchableRegion" since="11"/> <field name="visibleTopInsets"/> </class> - <class name="android/inputmethodservice/Keyboard" since="3" deprecated="29"> + <class name="android/inputmethodservice/Keyboard" since="3"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;II)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;IIII)V" since="11" deprecated="29"/> - <method name="<init>(Landroid/content/Context;ILjava/lang/CharSequence;II)V" deprecated="29"/> - <method name="createKeyFromXml(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Key;" deprecated="29"/> - <method name="createRowFromXml(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Row;" deprecated="29"/> - <method name="getHeight()I" deprecated="29"/> - <method name="getHorizontalGap()I" deprecated="29"/> - <method name="getKeyHeight()I" deprecated="29"/> - <method name="getKeyWidth()I" deprecated="29"/> - <method name="getKeys()Ljava/util/List;" deprecated="29"/> - <method name="getMinWidth()I" deprecated="29"/> - <method name="getModifierKeys()Ljava/util/List;" deprecated="29"/> - <method name="getNearestKeys(II)[I" deprecated="29"/> - <method name="getShiftKeyIndex()I" deprecated="29"/> - <method name="getVerticalGap()I" deprecated="29"/> - <method name="isShifted()Z" deprecated="29"/> - <method name="setHorizontalGap(I)V" deprecated="29"/> - <method name="setKeyHeight(I)V" deprecated="29"/> - <method name="setKeyWidth(I)V" deprecated="29"/> - <method name="setShifted(Z)Z" deprecated="29"/> - <method name="setVerticalGap(I)V" deprecated="29"/> - <field name="EDGE_BOTTOM" deprecated="29"/> - <field name="EDGE_LEFT" deprecated="29"/> - <field name="EDGE_RIGHT" deprecated="29"/> - <field name="EDGE_TOP" deprecated="29"/> - <field name="KEYCODE_ALT" deprecated="29"/> - <field name="KEYCODE_CANCEL" deprecated="29"/> - <field name="KEYCODE_DELETE" deprecated="29"/> - <field name="KEYCODE_DONE" deprecated="29"/> - <field name="KEYCODE_MODE_CHANGE" deprecated="29"/> - <field name="KEYCODE_SHIFT" deprecated="29"/> + <method name="<init>(Landroid/content/Context;I)V"/> + <method name="<init>(Landroid/content/Context;II)V"/> + <method name="<init>(Landroid/content/Context;IIII)V" since="11"/> + <method name="<init>(Landroid/content/Context;ILjava/lang/CharSequence;II)V"/> + <method name="createKeyFromXml(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Key;"/> + <method name="createRowFromXml(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Row;"/> + <method name="getHeight()I"/> + <method name="getHorizontalGap()I"/> + <method name="getKeyHeight()I"/> + <method name="getKeyWidth()I"/> + <method name="getKeys()Ljava/util/List;"/> + <method name="getMinWidth()I"/> + <method name="getModifierKeys()Ljava/util/List;"/> + <method name="getNearestKeys(II)[I"/> + <method name="getShiftKeyIndex()I"/> + <method name="getVerticalGap()I"/> + <method name="isShifted()Z"/> + <method name="setHorizontalGap(I)V"/> + <method name="setKeyHeight(I)V"/> + <method name="setKeyWidth(I)V"/> + <method name="setShifted(Z)Z"/> + <method name="setVerticalGap(I)V"/> + <field name="EDGE_BOTTOM"/> + <field name="EDGE_LEFT"/> + <field name="EDGE_RIGHT"/> + <field name="EDGE_TOP"/> + <field name="KEYCODE_ALT"/> + <field name="KEYCODE_CANCEL"/> + <field name="KEYCODE_DELETE"/> + <field name="KEYCODE_DONE"/> + <field name="KEYCODE_MODE_CHANGE"/> + <field name="KEYCODE_SHIFT"/> </class> - <class name="android/inputmethodservice/Keyboard$Key" since="3" deprecated="29"> + <class name="android/inputmethodservice/Keyboard$Key" since="3"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)V" deprecated="29"/> - <method name="<init>(Landroid/inputmethodservice/Keyboard$Row;)V" deprecated="29"/> - <method name="getCurrentDrawableState()[I" deprecated="29"/> - <method name="isInside(II)Z" deprecated="29"/> - <method name="onPressed()V" deprecated="29"/> - <method name="onReleased(Z)V" deprecated="29"/> - <method name="squaredDistanceFrom(II)I" deprecated="29"/> - <field name="codes" deprecated="29"/> - <field name="edgeFlags" deprecated="29"/> - <field name="gap" deprecated="29"/> - <field name="height" deprecated="29"/> - <field name="icon" deprecated="29"/> - <field name="iconPreview" deprecated="29"/> - <field name="label" deprecated="29"/> - <field name="modifier" deprecated="29"/> - <field name="on" deprecated="29"/> - <field name="popupCharacters" deprecated="29"/> - <field name="popupResId" deprecated="29"/> - <field name="pressed" deprecated="29"/> - <field name="repeatable" deprecated="29"/> - <field name="sticky" deprecated="29"/> - <field name="text" deprecated="29"/> - <field name="width" deprecated="29"/> - <field name="x" deprecated="29"/> - <field name="y" deprecated="29"/> + <method name="<init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)V"/> + <method name="<init>(Landroid/inputmethodservice/Keyboard$Row;)V"/> + <method name="getCurrentDrawableState()[I"/> + <method name="isInside(II)Z"/> + <method name="onPressed()V"/> + <method name="onReleased(Z)V"/> + <method name="squaredDistanceFrom(II)I"/> + <field name="codes"/> + <field name="edgeFlags"/> + <field name="gap"/> + <field name="height"/> + <field name="icon"/> + <field name="iconPreview"/> + <field name="label"/> + <field name="modifier"/> + <field name="on"/> + <field name="popupCharacters"/> + <field name="popupResId"/> + <field name="pressed"/> + <field name="repeatable"/> + <field name="sticky"/> + <field name="text"/> + <field name="width"/> + <field name="x"/> + <field name="y"/> </class> - <class name="android/inputmethodservice/Keyboard$Row" since="3" deprecated="29"> + <class name="android/inputmethodservice/Keyboard$Row" since="3"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard;Landroid/content/res/XmlResourceParser;)V" deprecated="29"/> - <method name="<init>(Landroid/inputmethodservice/Keyboard;)V" deprecated="29"/> - <field name="defaultHeight" deprecated="29"/> - <field name="defaultHorizontalGap" deprecated="29"/> - <field name="defaultWidth" deprecated="29"/> - <field name="mode" deprecated="29"/> - <field name="rowEdgeFlags" deprecated="29"/> - <field name="verticalGap" deprecated="29"/> + <method name="<init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard;Landroid/content/res/XmlResourceParser;)V"/> + <method name="<init>(Landroid/inputmethodservice/Keyboard;)V"/> + <field name="defaultHeight"/> + <field name="defaultHorizontalGap"/> + <field name="defaultWidth"/> + <field name="mode"/> + <field name="rowEdgeFlags"/> + <field name="verticalGap"/> </class> - <class name="android/inputmethodservice/KeyboardView" since="3" deprecated="29"> + <class name="android/inputmethodservice/KeyboardView" since="3"> <extends name="android/view/View"/> <implements name="android/view/View$OnClickListener"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="closing()V" deprecated="29"/> - <method name="getKeyboard()Landroid/inputmethodservice/Keyboard;" deprecated="29"/> - <method name="getOnKeyboardActionListener()Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;" deprecated="29"/> - <method name="handleBack()Z" deprecated="29"/> - <method name="invalidateAllKeys()V" since="4" deprecated="29"/> - <method name="invalidateKey(I)V" since="4" deprecated="29"/> - <method name="isPreviewEnabled()Z" deprecated="29"/> - <method name="isProximityCorrectionEnabled()Z" deprecated="29"/> - <method name="isShifted()Z" deprecated="29"/> - <method name="onLongPress(Landroid/inputmethodservice/Keyboard$Key;)Z" deprecated="29"/> - <method name="setKeyboard(Landroid/inputmethodservice/Keyboard;)V" deprecated="29"/> - <method name="setOnKeyboardActionListener(Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;)V" deprecated="29"/> - <method name="setPopupOffset(II)V" deprecated="29"/> - <method name="setPopupParent(Landroid/view/View;)V" deprecated="29"/> - <method name="setPreviewEnabled(Z)V" deprecated="29"/> - <method name="setProximityCorrectionEnabled(Z)V" deprecated="29"/> - <method name="setShifted(Z)Z" deprecated="29"/> - <method name="setVerticalCorrection(I)V" deprecated="29"/> - <method name="swipeDown()V" deprecated="29"/> - <method name="swipeLeft()V" deprecated="29"/> - <method name="swipeRight()V" deprecated="29"/> - <method name="swipeUp()V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="closing()V"/> + <method name="getKeyboard()Landroid/inputmethodservice/Keyboard;"/> + <method name="getOnKeyboardActionListener()Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;"/> + <method name="handleBack()Z"/> + <method name="invalidateAllKeys()V" since="4"/> + <method name="invalidateKey(I)V" since="4"/> + <method name="isPreviewEnabled()Z"/> + <method name="isProximityCorrectionEnabled()Z"/> + <method name="isShifted()Z"/> + <method name="onLongPress(Landroid/inputmethodservice/Keyboard$Key;)Z"/> + <method name="setKeyboard(Landroid/inputmethodservice/Keyboard;)V"/> + <method name="setOnKeyboardActionListener(Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;)V"/> + <method name="setPopupOffset(II)V"/> + <method name="setPopupParent(Landroid/view/View;)V"/> + <method name="setPreviewEnabled(Z)V"/> + <method name="setProximityCorrectionEnabled(Z)V"/> + <method name="setShifted(Z)Z"/> + <method name="setVerticalCorrection(I)V"/> + <method name="swipeDown()V"/> + <method name="swipeLeft()V"/> + <method name="swipeRight()V"/> + <method name="swipeUp()V"/> </class> - <class name="android/inputmethodservice/KeyboardView$OnKeyboardActionListener" since="3" deprecated="29"> + <class name="android/inputmethodservice/KeyboardView$OnKeyboardActionListener" since="3"> <extends name="java/lang/Object"/> - <method name="onKey(I[I)V" deprecated="29"/> - <method name="onPress(I)V" deprecated="29"/> - <method name="onRelease(I)V" deprecated="29"/> - <method name="onText(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="swipeDown()V" deprecated="29"/> - <method name="swipeLeft()V" deprecated="29"/> - <method name="swipeRight()V" deprecated="29"/> - <method name="swipeUp()V" deprecated="29"/> + <method name="onKey(I[I)V"/> + <method name="onPress(I)V"/> + <method name="onRelease(I)V"/> + <method name="onText(Ljava/lang/CharSequence;)V"/> + <method name="swipeDown()V"/> + <method name="swipeLeft()V"/> + <method name="swipeRight()V"/> + <method name="swipeUp()V"/> </class> <class name="android/location/Address" since="1"> <extends name="java/lang/Object"/> @@ -22324,12 +21446,11 @@ <class name="android/location/GnssClock" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getBiasNanos()D"/> <method name="getBiasUncertaintyNanos()D"/> <method name="getDriftNanosPerSecond()D"/> <method name="getDriftUncertaintyNanosPerSecond()D"/> - <method name="getElapsedRealtimeNanos()J" since="29"/> - <method name="getElapsedRealtimeUncertaintyNanos()D" since="29"/> <method name="getFullBiasNanos()J"/> <method name="getHardwareClockDiscontinuityCount()I"/> <method name="getLeapSecond()I"/> @@ -22339,8 +21460,6 @@ <method name="hasBiasUncertaintyNanos()Z"/> <method name="hasDriftNanosPerSecond()Z"/> <method name="hasDriftUncertaintyNanosPerSecond()Z"/> - <method name="hasElapsedRealtimeNanos()Z" since="29"/> - <method name="hasElapsedRealtimeUncertaintyNanos()Z" since="29"/> <method name="hasFullBiasNanos()Z"/> <method name="hasLeapSecond()Z"/> <method name="hasTimeUncertaintyNanos()Z"/> @@ -22349,6 +21468,7 @@ <class name="android/location/GnssMeasurement" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getAccumulatedDeltaRangeMeters()D"/> <method name="getAccumulatedDeltaRangeState()I"/> <method name="getAccumulatedDeltaRangeUncertaintyMeters()D"/> @@ -22358,7 +21478,6 @@ <method name="getCarrierPhase()D" deprecated="28"/> <method name="getCarrierPhaseUncertainty()D" deprecated="28"/> <method name="getCn0DbHz()D"/> - <method name="getCodeType()Ljava/lang/String;" since="29"/> <method name="getConstellationType()I"/> <method name="getMultipathIndicator()I"/> <method name="getPseudorangeRateMetersPerSecond()D"/> @@ -22374,7 +21493,6 @@ <method name="hasCarrierFrequencyHz()Z"/> <method name="hasCarrierPhase()Z" deprecated="28"/> <method name="hasCarrierPhaseUncertainty()Z" deprecated="28"/> - <method name="hasCodeType()Z" since="29"/> <method name="hasSnrInDb()Z"/> <field name="ADR_STATE_CYCLE_SLIP"/> <field name="ADR_STATE_HALF_CYCLE_REPORTED" since="28"/> @@ -22386,7 +21504,6 @@ <field name="MULTIPATH_INDICATOR_DETECTED"/> <field name="MULTIPATH_INDICATOR_NOT_DETECTED"/> <field name="MULTIPATH_INDICATOR_UNKNOWN"/> - <field name="STATE_2ND_CODE_LOCK" since="29"/> <field name="STATE_BDS_D2_BIT_SYNC"/> <field name="STATE_BDS_D2_SUBFRAME_SYNC"/> <field name="STATE_BIT_SYNC"/> @@ -22408,6 +21525,8 @@ <class name="android/location/GnssMeasurementsEvent" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/location/GnssClock;[Landroid/location/GnssMeasurement;)V" since="29"/> <method name="getClock()Landroid/location/GnssClock;"/> <method name="getMeasurements()Ljava/util/Collection;"/> <field name="CREATOR"/> @@ -22425,6 +21544,7 @@ <class name="android/location/GnssNavigationMessage" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getData()[B"/> <method name="getMessageId()I"/> <method name="getStatus()I"/> @@ -22457,6 +21577,8 @@ </class> <class name="android/location/GnssStatus" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I[I[F[F[F[F)V" since="29"/> <method name="getAzimuthDegrees(I)F"/> <method name="getCarrierFrequencyHz(I)F" since="26"/> <method name="getCn0DbHz(I)F"/> @@ -22472,7 +21594,6 @@ <field name="CONSTELLATION_GALILEO"/> <field name="CONSTELLATION_GLONASS"/> <field name="CONSTELLATION_GPS"/> - <field name="CONSTELLATION_IRNSS" since="29"/> <field name="CONSTELLATION_QZSS"/> <field name="CONSTELLATION_SBAS"/> <field name="CONSTELLATION_UNKNOWN"/> @@ -22487,31 +21608,34 @@ </class> <class name="android/location/GpsSatellite" since="3" deprecated="24"> <extends name="java/lang/Object"/> - <method name="getAzimuth()F" deprecated="29"/> - <method name="getElevation()F" deprecated="29"/> - <method name="getPrn()I" deprecated="29"/> - <method name="getSnr()F" deprecated="29"/> - <method name="hasAlmanac()Z" deprecated="29"/> - <method name="hasEphemeris()Z" deprecated="29"/> - <method name="usedInFix()Z" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> + <method name="getAzimuth()F"/> + <method name="getElevation()F"/> + <method name="getPrn()I"/> + <method name="getSnr()F"/> + <method name="hasAlmanac()Z"/> + <method name="hasEphemeris()Z"/> + <method name="usedInFix()Z"/> </class> <class name="android/location/GpsStatus" since="3" deprecated="24"> <extends name="java/lang/Object"/> - <method name="getMaxSatellites()I" deprecated="29"/> - <method name="getSatellites()Ljava/lang/Iterable;" deprecated="29"/> - <method name="getTimeToFirstFix()I" deprecated="29"/> - <field name="GPS_EVENT_FIRST_FIX" deprecated="29"/> - <field name="GPS_EVENT_SATELLITE_STATUS" deprecated="29"/> - <field name="GPS_EVENT_STARTED" deprecated="29"/> - <field name="GPS_EVENT_STOPPED" deprecated="29"/> + <method name="<init>()V"/> + <method name="getMaxSatellites()I"/> + <method name="getSatellites()Ljava/lang/Iterable;"/> + <method name="getTimeToFirstFix()I"/> + <field name="GPS_EVENT_FIRST_FIX"/> + <field name="GPS_EVENT_SATELLITE_STATUS"/> + <field name="GPS_EVENT_STARTED"/> + <field name="GPS_EVENT_STOPPED"/> </class> <class name="android/location/GpsStatus$Listener" since="3" deprecated="24"> <extends name="java/lang/Object"/> - <method name="onGpsStatusChanged(I)V" deprecated="29"/> + <method name="onGpsStatusChanged(I)V"/> </class> <class name="android/location/GpsStatus$NmeaListener" since="5" deprecated="24"> <extends name="java/lang/Object"/> - <method name="onNmeaReceived(JLjava/lang/String;)V" deprecated="29"/> + <method name="onNmeaReceived(JLjava/lang/String;)V"/> </class> <class name="android/location/Location" since="1"> <extends name="java/lang/Object"/> @@ -22529,7 +21653,6 @@ <method name="getBearing()F"/> <method name="getBearingAccuracyDegrees()F" since="26"/> <method name="getElapsedRealtimeNanos()J" since="17"/> - <method name="getElapsedRealtimeUncertaintyNanos()D" since="29"/> <method name="getExtras()Landroid/os/Bundle;"/> <method name="getLatitude()D"/> <method name="getLongitude()D"/> @@ -22542,7 +21665,6 @@ <method name="hasAltitude()Z"/> <method name="hasBearing()Z"/> <method name="hasBearingAccuracy()Z" since="26"/> - <method name="hasElapsedRealtimeUncertaintyNanos()Z" since="29"/> <method name="hasSpeed()Z"/> <method name="hasSpeedAccuracy()Z" since="26"/> <method name="hasVerticalAccuracy()Z" since="26"/> @@ -22558,7 +21680,6 @@ <method name="setBearing(F)V"/> <method name="setBearingAccuracyDegrees(F)V" since="26"/> <method name="setElapsedRealtimeNanos(J)V" since="17"/> - <method name="setElapsedRealtimeUncertaintyNanos(D)V" since="29"/> <method name="setExtras(Landroid/os/Bundle;)V"/> <method name="setLatitude(D)V"/> <method name="setLongitude(D)V"/> @@ -22577,19 +21698,20 @@ <method name="onLocationChanged(Landroid/location/Location;)V"/> <method name="onProviderDisabled(Ljava/lang/String;)V"/> <method name="onProviderEnabled(Ljava/lang/String;)V"/> - <method name="onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V" deprecated="29"/> + <method name="onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V"/> </class> <class name="android/location/LocationManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addGpsStatusListener(Landroid/location/GpsStatus$Listener;)Z" since="3" deprecated="24"/> - <method name="addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z" since="5" deprecated="24" removed="29"/> + <method name="addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z" since="5" deprecated="24"/> <method name="addNmeaListener(Landroid/location/OnNmeaMessageListener;)Z" since="24"/> <method name="addNmeaListener(Landroid/location/OnNmeaMessageListener;Landroid/os/Handler;)Z" since="24"/> <method name="addProximityAlert(DDFJLandroid/app/PendingIntent;)V"/> <method name="addTestProvider(Ljava/lang/String;ZZZZZZZII)V" since="3"/> - <method name="clearTestProviderEnabled(Ljava/lang/String;)V" since="3" deprecated="29"/> - <method name="clearTestProviderLocation(Ljava/lang/String;)V" since="3" deprecated="29"/> - <method name="clearTestProviderStatus(Ljava/lang/String;)V" since="3" deprecated="29"/> + <method name="clearTestProviderEnabled(Ljava/lang/String;)V" since="3"/> + <method name="clearTestProviderLocation(Ljava/lang/String;)V" since="3"/> + <method name="clearTestProviderStatus(Ljava/lang/String;)V" since="3"/> <method name="getAllProviders()Ljava/util/List;"/> <method name="getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String;"/> <method name="getGnssHardwareModelName()Ljava/lang/String;" since="28"/> @@ -22608,7 +21730,7 @@ <method name="registerGnssStatusCallback(Landroid/location/GnssStatus$Callback;)Z" since="24"/> <method name="registerGnssStatusCallback(Landroid/location/GnssStatus$Callback;Landroid/os/Handler;)Z" since="24"/> <method name="removeGpsStatusListener(Landroid/location/GpsStatus$Listener;)V" since="3" deprecated="24"/> - <method name="removeNmeaListener(Landroid/location/GpsStatus$NmeaListener;)V" since="5" deprecated="24" removed="29"/> + <method name="removeNmeaListener(Landroid/location/GpsStatus$NmeaListener;)V" since="5" deprecated="24"/> <method name="removeNmeaListener(Landroid/location/OnNmeaMessageListener;)V" since="24"/> <method name="removeProximityAlert(Landroid/app/PendingIntent;)V"/> <method name="removeTestProvider(Ljava/lang/String;)V" since="3"/> @@ -22626,16 +21748,15 @@ <method name="sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z" since="3"/> <method name="setTestProviderEnabled(Ljava/lang/String;Z)V" since="3"/> <method name="setTestProviderLocation(Ljava/lang/String;Landroid/location/Location;)V" since="3"/> - <method name="setTestProviderStatus(Ljava/lang/String;ILandroid/os/Bundle;J)V" since="3" deprecated="29"/> + <method name="setTestProviderStatus(Ljava/lang/String;ILandroid/os/Bundle;J)V" since="3"/> <method name="unregisterGnssMeasurementsCallback(Landroid/location/GnssMeasurementsEvent$Callback;)V" since="24"/> <method name="unregisterGnssNavigationMessageCallback(Landroid/location/GnssNavigationMessage$Callback;)V" since="24"/> <method name="unregisterGnssStatusCallback(Landroid/location/GnssStatus$Callback;)V" since="24"/> - <field name="EXTRA_PROVIDER_NAME" since="29"/> <field name="GPS_PROVIDER"/> <field name="KEY_LOCATION_CHANGED" since="3"/> <field name="KEY_PROVIDER_ENABLED" since="3"/> <field name="KEY_PROXIMITY_ENTERING"/> - <field name="KEY_STATUS_CHANGED" since="3" deprecated="29"/> + <field name="KEY_STATUS_CHANGED" since="3"/> <field name="MODE_CHANGED_ACTION" since="19"/> <field name="NETWORK_PROVIDER"/> <field name="PASSIVE_PROVIDER" since="8"/> @@ -22643,6 +21764,7 @@ </class> <class name="android/location/LocationProvider" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAccuracy()I"/> <method name="getName()Ljava/lang/String;"/> <method name="getPowerRequirement()I"/> @@ -22654,9 +21776,9 @@ <method name="supportsAltitude()Z"/> <method name="supportsBearing()Z"/> <method name="supportsSpeed()Z"/> - <field name="AVAILABLE" deprecated="29"/> - <field name="OUT_OF_SERVICE" deprecated="29"/> - <field name="TEMPORARILY_UNAVAILABLE" deprecated="29"/> + <field name="AVAILABLE"/> + <field name="OUT_OF_SERVICE"/> + <field name="TEMPORARILY_UNAVAILABLE"/> </class> <class name="android/location/OnNmeaMessageListener" since="24"> <extends name="java/lang/Object"/> @@ -22667,7 +21789,6 @@ <method name="<init>(Ljava/lang/String;)V"/> <method name="onGetEnabled()Z"/> <method name="onGetSummary()Ljava/lang/String;" deprecated="21"/> - <method name="refreshSettings(Landroid/content/Context;)V" since="29"/> <field name="ACTION_INJECTED_SETTING_CHANGED"/> <field name="ACTION_SERVICE_INTENT"/> <field name="ATTRIBUTES_NAME"/> @@ -22683,15 +21804,11 @@ <class name="android/media/AudioAttributes" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="areHapticChannelsMuted()Z" since="29"/> - <method name="getAllowedCapturePolicy()I" since="29"/> + <method name="<init>()V"/> <method name="getContentType()I"/> <method name="getFlags()I"/> <method name="getUsage()I"/> <method name="getVolumeControlStream()I" since="26"/> - <field name="ALLOW_CAPTURE_BY_ALL" since="29"/> - <field name="ALLOW_CAPTURE_BY_NONE" since="29"/> - <field name="ALLOW_CAPTURE_BY_SYSTEM" since="29"/> <field name="CONTENT_TYPE_MOVIE"/> <field name="CONTENT_TYPE_MUSIC"/> <field name="CONTENT_TYPE_SONIFICATION"/> @@ -22723,10 +21840,8 @@ <method name="<init>()V"/> <method name="<init>(Landroid/media/AudioAttributes;)V"/> <method name="build()Landroid/media/AudioAttributes;"/> - <method name="setAllowedCapturePolicy(I)Landroid/media/AudioAttributes$Builder;" since="29"/> <method name="setContentType(I)Landroid/media/AudioAttributes$Builder;"/> <method name="setFlags(I)Landroid/media/AudioAttributes$Builder;"/> - <method name="setHapticChannelsMuted(Z)Landroid/media/AudioAttributes$Builder;" since="29"/> <method name="setLegacyStreamType(I)Landroid/media/AudioAttributes$Builder;"/> <method name="setUsage(I)Landroid/media/AudioAttributes$Builder;"/> </class> @@ -22738,6 +21853,7 @@ </class> <class name="android/media/AudioDeviceInfo" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAddress()Ljava/lang/String;" since="28"/> <method name="getChannelCounts()[I"/> <method name="getChannelIndexMasks()[I"/> @@ -22776,6 +21892,8 @@ </class> <class name="android/media/AudioFocusRequest" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/os/Handler;Landroid/media/AudioAttributes;II)V" since="29"/> <method name="acceptsDelayedFocusGain()Z"/> <method name="getAudioAttributes()Landroid/media/AudioAttributes;"/> <method name="getFocusGain()I"/> @@ -22797,17 +21915,16 @@ <class name="android/media/AudioFormat" since="3"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable" since="24"/> - <method name="<init>()V" removed="21"/> + <method name="<init>()V"/> <method name="getChannelCount()I" since="23"/> <method name="getChannelIndexMask()I" since="23"/> <method name="getChannelMask()I" since="21"/> <method name="getEncoding()I" since="21"/> - <method name="getFrameSizeInBytes()I" since="29"/> <method name="getSampleRate()I" since="21"/> - <field name="CHANNEL_CONFIGURATION_DEFAULT" deprecated="15"/> - <field name="CHANNEL_CONFIGURATION_INVALID" deprecated="15"/> - <field name="CHANNEL_CONFIGURATION_MONO" deprecated="15"/> - <field name="CHANNEL_CONFIGURATION_STEREO" deprecated="15"/> + <field name="CHANNEL_CONFIGURATION_DEFAULT" deprecated="16"/> + <field name="CHANNEL_CONFIGURATION_INVALID" deprecated="16"/> + <field name="CHANNEL_CONFIGURATION_MONO" deprecated="16"/> + <field name="CHANNEL_CONFIGURATION_STEREO" deprecated="16"/> <field name="CHANNEL_INVALID" since="5"/> <field name="CHANNEL_IN_BACK" since="5"/> <field name="CHANNEL_IN_BACK_PROCESSED" since="5"/> @@ -22854,7 +21971,6 @@ <field name="ENCODING_AC3" since="21"/> <field name="ENCODING_AC4" since="28"/> <field name="ENCODING_DEFAULT"/> - <field name="ENCODING_DOLBY_MAT" since="29"/> <field name="ENCODING_DOLBY_TRUEHD" since="25"/> <field name="ENCODING_DTS" since="23"/> <field name="ENCODING_DTS_HD" since="23"/> @@ -22880,6 +21996,7 @@ </class> <class name="android/media/AudioManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I" since="8" deprecated="26"/> <method name="abandonAudioFocusRequest(Landroid/media/AudioFocusRequest;)I" since="26"/> <method name="adjustStreamVolume(III)V"/> @@ -22889,14 +22006,13 @@ <method name="generateAudioSessionId()I" since="21"/> <method name="getActivePlaybackConfigurations()Ljava/util/List;" since="26"/> <method name="getActiveRecordingConfigurations()Ljava/util/List;" since="24"/> - <method name="getAllowedCapturePolicy()I" since="29"/> <method name="getDevices(I)[Landroid/media/AudioDeviceInfo;" since="23"/> <method name="getMicrophones()Ljava/util/List;" since="28"/> <method name="getMode()I"/> <method name="getParameters(Ljava/lang/String;)Ljava/lang/String;" since="5"/> <method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" since="17"/> <method name="getRingerMode()I"/> - <method name="getRouting(I)I" deprecated="15"/> + <method name="getRouting(I)I" deprecated="16"/> <method name="getStreamMaxVolume(I)I"/> <method name="getStreamMinVolume(I)I" since="28"/> <method name="getStreamVolume(I)I"/> @@ -22905,14 +22021,12 @@ <method name="isBluetoothA2dpOn()Z" since="3" deprecated="26"/> <method name="isBluetoothScoAvailableOffCall()Z" since="8"/> <method name="isBluetoothScoOn()Z"/> - <method name="isHapticPlaybackSupported()Z" since="29"/> <method name="isMicrophoneMute()Z"/> <method name="isMusicActive()Z"/> - <method name="isOffloadedPlaybackSupported(Landroid/media/AudioFormat;Landroid/media/AudioAttributes;)Z" since="29"/> <method name="isSpeakerphoneOn()Z"/> <method name="isStreamMute(I)Z" since="23"/> <method name="isVolumeFixed()Z" since="21"/> - <method name="isWiredHeadsetOn()Z" since="5" deprecated="15"/> + <method name="isWiredHeadsetOn()Z" since="5" deprecated="16"/> <method name="loadSoundEffects()V"/> <method name="playSoundEffect(I)V"/> <method name="playSoundEffect(IF)V" since="3"/> @@ -22925,20 +22039,19 @@ <method name="registerRemoteController(Landroid/media/RemoteController;)Z" since="19" deprecated="21"/> <method name="requestAudioFocus(Landroid/media/AudioFocusRequest;)I" since="26"/> <method name="requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I" since="8" deprecated="26"/> - <method name="setAllowedCapturePolicy(I)V" since="29"/> - <method name="setBluetoothA2dpOn(Z)V" since="3" deprecated="15"/> + <method name="setBluetoothA2dpOn(Z)V" since="3" deprecated="16"/> <method name="setBluetoothScoOn(Z)V"/> <method name="setMicrophoneMute(Z)V"/> <method name="setMode(I)V"/> <method name="setParameters(Ljava/lang/String;)V" since="5"/> <method name="setRingerMode(I)V"/> - <method name="setRouting(III)V" deprecated="15"/> + <method name="setRouting(III)V" deprecated="16"/> <method name="setSpeakerphoneOn(Z)V"/> <method name="setStreamMute(IZ)V" deprecated="23"/> <method name="setStreamSolo(IZ)V" deprecated="23"/> <method name="setStreamVolume(III)V"/> <method name="setVibrateSetting(II)V" deprecated="16"/> - <method name="setWiredHeadsetOn(Z)V" since="5" deprecated="15"/> + <method name="setWiredHeadsetOn(Z)V" since="5" deprecated="16"/> <method name="shouldVibrate(I)Z" deprecated="16"/> <method name="startBluetoothSco()V" since="8"/> <method name="stopBluetoothSco()V" since="8"/> @@ -22954,9 +22067,8 @@ <field name="ACTION_HDMI_AUDIO_PLUG" since="21"/> <field name="ACTION_HEADSET_PLUG" since="21"/> <field name="ACTION_MICROPHONE_MUTE_CHANGED" since="28"/> - <field name="ACTION_SCO_AUDIO_STATE_CHANGED" since="8" deprecated="15"/> + <field name="ACTION_SCO_AUDIO_STATE_CHANGED" since="8" deprecated="16"/> <field name="ACTION_SCO_AUDIO_STATE_UPDATED" since="14"/> - <field name="ACTION_SPEAKERPHONE_STATE_CHANGED" since="29"/> <field name="ADJUST_LOWER"/> <field name="ADJUST_MUTE" since="23"/> <field name="ADJUST_RAISE"/> @@ -23009,7 +22121,7 @@ <field name="MODE_IN_COMMUNICATION" since="11"/> <field name="MODE_NORMAL"/> <field name="MODE_RINGTONE"/> - <field name="NUM_STREAMS" deprecated="15"/> + <field name="NUM_STREAMS" deprecated="16"/> <field name="PROPERTY_OUTPUT_FRAMES_PER_BUFFER" since="17"/> <field name="PROPERTY_OUTPUT_SAMPLE_RATE" since="17"/> <field name="PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED" since="24"/> @@ -23019,13 +22131,13 @@ <field name="RINGER_MODE_NORMAL"/> <field name="RINGER_MODE_SILENT"/> <field name="RINGER_MODE_VIBRATE"/> - <field name="ROUTE_ALL" deprecated="15"/> - <field name="ROUTE_BLUETOOTH" deprecated="15"/> - <field name="ROUTE_BLUETOOTH_A2DP" since="3" deprecated="15"/> - <field name="ROUTE_BLUETOOTH_SCO" since="3" deprecated="15"/> - <field name="ROUTE_EARPIECE" deprecated="15"/> - <field name="ROUTE_HEADSET" deprecated="15"/> - <field name="ROUTE_SPEAKER" deprecated="15"/> + <field name="ROUTE_ALL" deprecated="16"/> + <field name="ROUTE_BLUETOOTH" deprecated="16"/> + <field name="ROUTE_BLUETOOTH_A2DP" since="3" deprecated="16"/> + <field name="ROUTE_BLUETOOTH_SCO" since="3" deprecated="16"/> + <field name="ROUTE_EARPIECE" deprecated="16"/> + <field name="ROUTE_HEADSET" deprecated="16"/> + <field name="ROUTE_SPEAKER" deprecated="16"/> <field name="SCO_AUDIO_STATE_CONNECTED" since="8"/> <field name="SCO_AUDIO_STATE_CONNECTING" since="14"/> <field name="SCO_AUDIO_STATE_DISCONNECTED" since="8"/> @@ -23060,36 +22172,21 @@ <extends name="java/lang/Object"/> <method name="onAudioFocusChange(I)V"/> </class> - <class name="android/media/AudioPlaybackCaptureConfiguration" since="29"> - <extends name="java/lang/Object"/> - <method name="getExcludeUids()[I"/> - <method name="getExcludeUsages()[I"/> - <method name="getMatchingUids()[I"/> - <method name="getMatchingUsages()[I"/> - <method name="getMediaProjection()Landroid/media/projection/MediaProjection;"/> - </class> - <class name="android/media/AudioPlaybackCaptureConfiguration$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/media/projection/MediaProjection;)V"/> - <method name="addMatchingUid(I)Landroid/media/AudioPlaybackCaptureConfiguration$Builder;"/> - <method name="addMatchingUsage(I)Landroid/media/AudioPlaybackCaptureConfiguration$Builder;"/> - <method name="build()Landroid/media/AudioPlaybackCaptureConfiguration;"/> - <method name="excludeUid(I)Landroid/media/AudioPlaybackCaptureConfiguration$Builder;"/> - <method name="excludeUsage(I)Landroid/media/AudioPlaybackCaptureConfiguration$Builder;"/> - </class> <class name="android/media/AudioPlaybackConfiguration" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="getAudioAttributes()Landroid/media/AudioAttributes;"/> <field name="CREATOR"/> </class> <class name="android/media/AudioPresentation" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IILjava/util/Map;Ljava/lang/String;IZZZ)V" since="29"/> <method name="getLabels()Ljava/util/Map;"/> <method name="getLocale()Ljava/util/Locale;"/> <method name="getMasteringIndication()I"/> - <method name="getPresentationId()I" since="29"/> - <method name="getProgramId()I" since="29"/> <method name="hasAudioDescription()Z"/> <method name="hasDialogueEnhancement()Z"/> <method name="hasSpokenSubtitles()Z"/> @@ -23099,23 +22196,9 @@ <field name="MASTERED_FOR_SURROUND"/> <field name="MASTERING_NOT_INDICATED"/> </class> - <class name="android/media/AudioPresentation$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(I)V"/> - <method name="build()Landroid/media/AudioPresentation;"/> - <method name="setHasAudioDescription(Z)Landroid/media/AudioPresentation$Builder;"/> - <method name="setHasDialogueEnhancement(Z)Landroid/media/AudioPresentation$Builder;"/> - <method name="setHasSpokenSubtitles(Z)Landroid/media/AudioPresentation$Builder;"/> - <method name="setLabels(Ljava/util/Map;)Landroid/media/AudioPresentation$Builder;"/> - <method name="setLocale(Landroid/icu/util/ULocale;)Landroid/media/AudioPresentation$Builder;"/> - <method name="setMasteringIndication(I)Landroid/media/AudioPresentation$Builder;"/> - <method name="setProgramId(I)Landroid/media/AudioPresentation$Builder;"/> - </class> <class name="android/media/AudioRecord" since="3"> <extends name="java/lang/Object"/> - <implements name="android/media/AudioRecordingMonitor" since="29"/> <implements name="android/media/AudioRouting" since="24"/> - <implements name="android/media/MicrophoneDirection" since="29"/> <method name="<init>(IIIII)V"/> <method name="addOnRoutingChangedListener(Landroid/media/AudioRecord$OnRoutingChangedListener;Landroid/os/Handler;)V" since="23" deprecated="24"/> <method name="getActiveMicrophones()Ljava/util/List;" since="28"/> @@ -23170,15 +22253,15 @@ <method name="<init>()V"/> <method name="build()Landroid/media/AudioRecord;"/> <method name="setAudioFormat(Landroid/media/AudioFormat;)Landroid/media/AudioRecord$Builder;"/> - <method name="setAudioPlaybackCaptureConfig(Landroid/media/AudioPlaybackCaptureConfiguration;)Landroid/media/AudioRecord$Builder;" since="29"/> <method name="setAudioSource(I)Landroid/media/AudioRecord$Builder;"/> <method name="setBufferSizeInBytes(I)Landroid/media/AudioRecord$Builder;"/> </class> <class name="android/media/AudioRecord$MetricsConstants" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CHANNELS"/> <field name="ENCODING"/> - <field name="LATENCY" deprecated="29"/> + <field name="LATENCY"/> <field name="SAMPLERATE"/> <field name="SOURCE"/> </class> @@ -23190,28 +22273,20 @@ <class name="android/media/AudioRecord$OnRoutingChangedListener" since="23" deprecated="24"> <extends name="java/lang/Object"/> <implements name="android/media/AudioRouting$OnRoutingChangedListener" since="24"/> - <method name="onRoutingChanged(Landroid/media/AudioRecord;)V" deprecated="29"/> + <method name="onRoutingChanged(Landroid/media/AudioRecord;)V"/> </class> <class name="android/media/AudioRecordingConfiguration" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getAudioDevice()Landroid/media/AudioDeviceInfo;"/> - <method name="getAudioSource()I" since="29"/> <method name="getClientAudioSessionId()I"/> <method name="getClientAudioSource()I"/> - <method name="getClientEffects()Ljava/util/List;" since="29"/> <method name="getClientFormat()Landroid/media/AudioFormat;"/> - <method name="getEffects()Ljava/util/List;" since="29"/> <method name="getFormat()Landroid/media/AudioFormat;"/> - <method name="isClientSilenced()Z" since="29"/> <field name="CREATOR"/> </class> - <class name="android/media/AudioRecordingMonitor" since="29"> - <extends name="java/lang/Object"/> - <method name="getActiveRecordingConfiguration()Landroid/media/AudioRecordingConfiguration;"/> - <method name="registerAudioRecordingCallback(Ljava/util/concurrent/Executor;Landroid/media/AudioManager$AudioRecordingCallback;)V"/> - <method name="unregisterAudioRecordingCallback(Landroid/media/AudioManager$AudioRecordingCallback;)V"/> - </class> <class name="android/media/AudioRouting" since="24"> <extends name="java/lang/Object"/> <method name="addOnRoutingChangedListener(Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V"/> @@ -23242,7 +22317,6 @@ <method name="addOnRoutingChangedListener(Landroid/media/AudioTrack$OnRoutingChangedListener;Landroid/os/Handler;)V" since="23" deprecated="24"/> <method name="attachAuxEffect(I)I" since="9"/> <method name="flush()V"/> - <method name="getAudioAttributes()Landroid/media/AudioAttributes;" since="29"/> <method name="getAudioFormat()I"/> <method name="getAudioSessionId()I" since="9"/> <method name="getBufferCapacityInFrames()I" since="24"/> @@ -23257,8 +22331,6 @@ <method name="getNativeFrameCount()I" deprecated="19"/> <method name="getNativeOutputSampleRate(I)I"/> <method name="getNotificationMarkerPosition()I"/> - <method name="getOffloadDelay()I" since="29"/> - <method name="getOffloadPadding()I" since="29"/> <method name="getPerformanceMode()I" since="26"/> <method name="getPlayState()I"/> <method name="getPlaybackHeadPosition()I"/> @@ -23272,11 +22344,8 @@ <method name="getStreamType()I"/> <method name="getTimestamp(Landroid/media/AudioTimestamp;)Z" since="19"/> <method name="getUnderrunCount()I" since="24"/> - <method name="isDirectPlaybackSupported(Landroid/media/AudioFormat;Landroid/media/AudioAttributes;)Z" since="29"/> - <method name="isOffloadedPlayback()Z" since="29"/> <method name="pause()V"/> <method name="play()V"/> - <method name="registerStreamEventCallback(Ljava/util/concurrent/Executor;Landroid/media/AudioTrack$StreamEventCallback;)V" since="29"/> <method name="release()V"/> <method name="reloadStaticData()I"/> <method name="removeOnRoutingChangedListener(Landroid/media/AudioTrack$OnRoutingChangedListener;)V" since="23" deprecated="24"/> @@ -23284,8 +22353,6 @@ <method name="setBufferSizeInFrames(I)I" since="24"/> <method name="setLoopPoints(III)I"/> <method name="setNotificationMarkerPosition(I)I"/> - <method name="setOffloadDelayPadding(II)V" since="29"/> - <method name="setOffloadEndOfStream()V" since="29"/> <method name="setPlaybackHeadPosition(I)I"/> <method name="setPlaybackParams(Landroid/media/PlaybackParams;)V" since="23"/> <method name="setPlaybackPositionUpdateListener(Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;)V"/> @@ -23298,7 +22365,6 @@ <method name="setStereoVolume(FF)I" deprecated="21"/> <method name="setVolume(F)I" since="21"/> <method name="stop()V"/> - <method name="unregisterStreamEventCallback(Landroid/media/AudioTrack$StreamEventCallback;)V" since="29"/> <method name="write(Ljava/nio/ByteBuffer;II)I" since="21"/> <method name="write(Ljava/nio/ByteBuffer;IIJ)I" since="23"/> <method name="write([BII)I"/> @@ -23332,16 +22398,16 @@ <method name="setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/AudioTrack$Builder;"/> <method name="setAudioFormat(Landroid/media/AudioFormat;)Landroid/media/AudioTrack$Builder;"/> <method name="setBufferSizeInBytes(I)Landroid/media/AudioTrack$Builder;"/> - <method name="setOffloadedPlayback(Z)Landroid/media/AudioTrack$Builder;" since="29"/> <method name="setPerformanceMode(I)Landroid/media/AudioTrack$Builder;" since="26"/> <method name="setSessionId(I)Landroid/media/AudioTrack$Builder;"/> <method name="setTransferMode(I)Landroid/media/AudioTrack$Builder;"/> </class> <class name="android/media/AudioTrack$MetricsConstants" since="28"> <extends name="java/lang/Object"/> - <field name="CHANNELMASK" deprecated="29"/> + <method name="<init>()V"/> + <field name="CHANNELMASK"/> <field name="CONTENTTYPE"/> - <field name="SAMPLERATE" deprecated="29"/> + <field name="SAMPLERATE"/> <field name="STREAMTYPE"/> <field name="USAGE"/> </class> @@ -23353,17 +22419,12 @@ <class name="android/media/AudioTrack$OnRoutingChangedListener" since="23" deprecated="24"> <extends name="java/lang/Object"/> <implements name="android/media/AudioRouting$OnRoutingChangedListener" since="24"/> - <method name="onRoutingChanged(Landroid/media/AudioTrack;)V" deprecated="29"/> - </class> - <class name="android/media/AudioTrack$StreamEventCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onDataRequest(Landroid/media/AudioTrack;I)V"/> - <method name="onPresentationEnded(Landroid/media/AudioTrack;)V"/> - <method name="onTearDown(Landroid/media/AudioTrack;)V"/> + <method name="onRoutingChanged(Landroid/media/AudioTrack;)V"/> </class> <class name="android/media/CamcorderProfile" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIIIIIIIIIII)V" since="29"/> <method name="get(I)Landroid/media/CamcorderProfile;"/> <method name="get(II)Landroid/media/CamcorderProfile;" since="9"/> <method name="hasProfile(I)Z" since="11"/> @@ -23420,31 +22481,30 @@ </class> <class name="android/media/DrmInitData" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="get(Ljava/util/UUID;)Landroid/media/DrmInitData$SchemeInitData;"/> </class> <class name="android/media/DrmInitData$SchemeInitData" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;[B)V" since="29"/> <field name="data"/> <field name="mimeType"/> </class> <class name="android/media/ExifInterface" since="5"> <extends name="java/lang/Object"/> - <method name="<init>(Ljava/io/File;)V" since="29"/> <method name="<init>(Ljava/io/FileDescriptor;)V" since="24"/> <method name="<init>(Ljava/io/InputStream;)V" since="24"/> <method name="<init>(Ljava/lang/String;)V"/> <method name="getAltitude(D)D" since="9"/> <method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;"/> - <method name="getAttributeBytes(Ljava/lang/String;)[B" since="29"/> <method name="getAttributeDouble(Ljava/lang/String;D)D" since="8"/> <method name="getAttributeInt(Ljava/lang/String;I)I"/> - <method name="getAttributeRange(Ljava/lang/String;)[J" since="29"/> <method name="getLatLong([F)Z"/> <method name="getThumbnail()[B"/> <method name="getThumbnailBitmap()Landroid/graphics/Bitmap;" since="26"/> <method name="getThumbnailBytes()[B" since="26"/> <method name="getThumbnailRange()[J" since="24"/> - <method name="hasAttribute(Ljava/lang/String;)Z" since="29"/> <method name="hasThumbnail()Z"/> <method name="isThumbnailCompressed()Z" since="26"/> <method name="saveAttributes()V"/> @@ -23591,7 +22651,6 @@ <field name="TAG_USER_COMMENT" since="24"/> <field name="TAG_WHITE_BALANCE"/> <field name="TAG_WHITE_POINT" since="24"/> - <field name="TAG_XMP" since="29"/> <field name="TAG_X_RESOLUTION" since="24"/> <field name="TAG_Y_CB_CR_COEFFICIENTS" since="24"/> <field name="TAG_Y_CB_CR_POSITIONING" since="24"/> @@ -23607,6 +22666,7 @@ </class> <class name="android/media/FaceDetector$Face" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/FaceDetector;)V"/> <method name="confidence()F"/> <method name="eyesDistance()F"/> <method name="getMidPoint(Landroid/graphics/PointF;)V"/> @@ -23619,6 +22679,7 @@ <class name="android/media/Image" since="19"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="getCropRect()Landroid/graphics/Rect;" since="21"/> <method name="getFormat()I"/> <method name="getHardwareBuffer()Landroid/hardware/HardwareBuffer;" since="28"/> @@ -23631,6 +22692,7 @@ </class> <class name="android/media/Image$Plane" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getBuffer()Ljava/nio/ByteBuffer;"/> <method name="getPixelStride()I"/> <method name="getRowStride()I"/> @@ -23638,6 +22700,8 @@ <class name="android/media/ImageReader" since="19"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIIIJ)V" since="29"/> <method name="acquireLatestImage()Landroid/media/Image;"/> <method name="acquireNextImage()Landroid/media/Image;"/> <method name="discardFreeBuffers()V" since="28"/> @@ -23647,7 +22711,6 @@ <method name="getSurface()Landroid/view/Surface;"/> <method name="getWidth()I"/> <method name="newInstance(IIII)Landroid/media/ImageReader;"/> - <method name="newInstance(IIIIJ)Landroid/media/ImageReader;" since="29"/> <method name="setOnImageAvailableListener(Landroid/media/ImageReader$OnImageAvailableListener;Landroid/os/Handler;)V"/> </class> <class name="android/media/ImageReader$OnImageAvailableListener" since="19"> @@ -23657,11 +22720,12 @@ <class name="android/media/ImageWriter" since="23"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/view/Surface;II)V" since="29"/> <method name="dequeueInputImage()Landroid/media/Image;"/> <method name="getFormat()I"/> <method name="getMaxImages()I"/> <method name="newInstance(Landroid/view/Surface;I)Landroid/media/ImageWriter;"/> - <method name="newInstance(Landroid/view/Surface;II)Landroid/media/ImageWriter;" since="29"/> <method name="queueInputImage(Landroid/media/Image;)V"/> <method name="setOnImageReleasedListener(Landroid/media/ImageWriter$OnImageReleasedListener;Landroid/os/Handler;)V"/> </class> @@ -23671,6 +22735,7 @@ </class> <class name="android/media/JetPlayer" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="clearQueue()Z"/> <method name="closeJetFile()Z"/> <method name="getJetPlayer()Landroid/media/JetPlayer;"/> @@ -23725,42 +22790,57 @@ <class name="android/media/MediaCas$EventListener" since="26"> <extends name="java/lang/Object"/> <method name="onEvent(Landroid/media/MediaCas;II[B)V"/> - <method name="onSessionEvent(Landroid/media/MediaCas;Landroid/media/MediaCas$Session;II[B)V" since="29"/> </class> <class name="android/media/MediaCas$PluginDescriptor" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getName()Ljava/lang/String;"/> <method name="getSystemId()I"/> </class> <class name="android/media/MediaCas$Session" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>(Landroid/media/MediaCas;)V" removed="29"/> + <method name="<init>(Landroid/media/MediaCas;Ljava/util/ArrayList;)V" since="29"/> <method name="processEcm([B)V"/> <method name="processEcm([BII)V"/> - <method name="sendSessionEvent(II[B)V" since="29"/> <method name="setPrivateData([B)V"/> </class> <class name="android/media/MediaCasException" since="26"> <extends name="java/lang/Exception"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/media/MediaCasException$DeniedByServerException" since="26"> <extends name="android/media/MediaCasException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/media/MediaCasException$NotProvisionedException" since="26"> <extends name="android/media/MediaCasException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/media/MediaCasException$ResourceBusyException" since="26"> <extends name="android/media/MediaCasException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/media/MediaCasException$UnsupportedCasException" since="26"> <extends name="android/media/MediaCasException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/media/MediaCasStateException" since="26"> <extends name="java/lang/IllegalStateException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="getDiagnosticInfo()Ljava/lang/String;"/> </class> <class name="android/media/MediaCodec" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;ZZ)V" since="29"/> <method name="configure(Landroid/media/MediaFormat;Landroid/view/Surface;ILandroid/media/MediaDescrambler;)V" since="26"/> <method name="configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V"/> <method name="createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;"/> @@ -23771,7 +22851,6 @@ <method name="dequeueInputBuffer(J)I"/> <method name="dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I"/> <method name="flush()V"/> - <method name="getCanonicalName()Ljava/lang/String;" since="29"/> <method name="getCodecInfo()Landroid/media/MediaCodecInfo;" since="18"/> <method name="getInputBuffer(I)Ljava/nio/ByteBuffer;" since="21"/> <method name="getInputBuffers()[Ljava/nio/ByteBuffer;" deprecated="21"/> @@ -23790,7 +22869,6 @@ <method name="releaseOutputBuffer(IJ)V" since="21"/> <method name="releaseOutputBuffer(IZ)V"/> <method name="reset()V" since="21"/> - <method name="setAudioPresentation(Landroid/media/AudioPresentation;)V" since="29"/> <method name="setCallback(Landroid/media/MediaCodec$Callback;)V" since="21"/> <method name="setCallback(Landroid/media/MediaCodec$Callback;Landroid/os/Handler;)V" since="23"/> <method name="setInputSurface(Landroid/view/Surface;)V" since="23"/> @@ -23813,11 +22891,8 @@ <field name="INFO_OUTPUT_BUFFERS_CHANGED" deprecated="21"/> <field name="INFO_OUTPUT_FORMAT_CHANGED"/> <field name="INFO_TRY_AGAIN_LATER"/> - <field name="PARAMETER_KEY_HDR10_PLUS_INFO" since="29"/> - <field name="PARAMETER_KEY_OFFSET_TIME" since="29"/> <field name="PARAMETER_KEY_REQUEST_SYNC_FRAME" since="19"/> <field name="PARAMETER_KEY_SUSPEND" since="19"/> - <field name="PARAMETER_KEY_SUSPEND_TIME" since="29"/> <field name="PARAMETER_KEY_VIDEO_BITRATE" since="19"/> <field name="VIDEO_SCALING_MODE_SCALE_TO_FIT"/> <field name="VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING"/> @@ -23841,6 +22916,8 @@ </class> <class name="android/media/MediaCodec$CodecException" since="21"> <extends name="java/lang/IllegalStateException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IILjava/lang/String;)V" since="29"/> <method name="getDiagnosticInfo()Ljava/lang/String;"/> <method name="getErrorCode()I" since="23"/> <method name="isRecoverable()Z"/> @@ -23852,11 +22929,8 @@ <extends name="java/lang/RuntimeException"/> <method name="<init>(ILjava/lang/String;)V"/> <method name="getErrorCode()I"/> - <field name="ERROR_FRAME_TOO_LARGE" since="29"/> <field name="ERROR_INSUFFICIENT_OUTPUT_PROTECTION" since="21"/> - <field name="ERROR_INSUFFICIENT_SECURITY" since="29"/> <field name="ERROR_KEY_EXPIRED" since="19"/> - <field name="ERROR_LOST_STATE" since="29"/> <field name="ERROR_NO_KEY" since="19"/> <field name="ERROR_RESOURCE_BUSY" since="19"/> <field name="ERROR_SESSION_NOT_OPENED" since="23"/> @@ -23883,6 +22957,7 @@ </class> <class name="android/media/MediaCodec$MetricsConstants" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CODEC"/> <field name="ENCODER"/> <field name="HEIGHT"/> @@ -23900,18 +22975,16 @@ </class> <class name="android/media/MediaCodecInfo" since="16"> <extends name="java/lang/Object"/> - <method name="getCanonicalName()Ljava/lang/String;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Z[Landroid/media/MediaCodecInfo$CodecCapabilities;)V" since="29"/> <method name="getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;"/> <method name="getName()Ljava/lang/String;"/> <method name="getSupportedTypes()[Ljava/lang/String;"/> - <method name="isAlias()Z" since="29"/> <method name="isEncoder()Z"/> - <method name="isHardwareAccelerated()Z" since="29"/> - <method name="isSoftwareOnly()Z" since="29"/> - <method name="isVendor()Z" since="29"/> </class> <class name="android/media/MediaCodecInfo$AudioCapabilities" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getBitrateRange()Landroid/util/Range;"/> <method name="getMaxInputChannelCount()I"/> <method name="getSupportedSampleRateRanges()[Landroid/util/Range;"/> @@ -23984,10 +23057,7 @@ <field name="COLOR_QCOM_FormatYUV420SemiPlanar" deprecated="23"/> <field name="COLOR_TI_FormatYUV420PackedSemiPlanar" deprecated="23"/> <field name="FEATURE_AdaptivePlayback" since="19"/> - <field name="FEATURE_DynamicTimestamp" since="29"/> - <field name="FEATURE_FrameParsing" since="29"/> <field name="FEATURE_IntraRefresh" since="24"/> - <field name="FEATURE_MultipleFrames" since="29"/> <field name="FEATURE_PartialFrame" since="26"/> <field name="FEATURE_SecurePlayback" since="21"/> <field name="FEATURE_TunneledPlayback" since="21"/> @@ -24009,34 +23079,6 @@ <field name="AACObjectSSR"/> <field name="AACObjectScalable"/> <field name="AACObjectXHE" since="28"/> - <field name="AV1Level2" since="29"/> - <field name="AV1Level21" since="29"/> - <field name="AV1Level22" since="29"/> - <field name="AV1Level23" since="29"/> - <field name="AV1Level3" since="29"/> - <field name="AV1Level31" since="29"/> - <field name="AV1Level32" since="29"/> - <field name="AV1Level33" since="29"/> - <field name="AV1Level4" since="29"/> - <field name="AV1Level41" since="29"/> - <field name="AV1Level42" since="29"/> - <field name="AV1Level43" since="29"/> - <field name="AV1Level5" since="29"/> - <field name="AV1Level51" since="29"/> - <field name="AV1Level52" since="29"/> - <field name="AV1Level53" since="29"/> - <field name="AV1Level6" since="29"/> - <field name="AV1Level61" since="29"/> - <field name="AV1Level62" since="29"/> - <field name="AV1Level63" since="29"/> - <field name="AV1Level7" since="29"/> - <field name="AV1Level71" since="29"/> - <field name="AV1Level72" since="29"/> - <field name="AV1Level73" since="29"/> - <field name="AV1ProfileMain10" since="29"/> - <field name="AV1ProfileMain10HDR10" since="29"/> - <field name="AV1ProfileMain10HDR10Plus" since="29"/> - <field name="AV1ProfileMain8" since="29"/> <field name="AVCLevel1"/> <field name="AVCLevel11"/> <field name="AVCLevel12"/> @@ -24054,9 +23096,6 @@ <field name="AVCLevel5"/> <field name="AVCLevel51"/> <field name="AVCLevel52" since="21"/> - <field name="AVCLevel6" since="29"/> - <field name="AVCLevel61" since="29"/> - <field name="AVCLevel62" since="29"/> <field name="AVCProfileBaseline"/> <field name="AVCProfileConstrainedBaseline" since="27"/> <field name="AVCProfileConstrainedHigh" since="27"/> @@ -24131,7 +23170,6 @@ <field name="HEVCProfileMain" since="21"/> <field name="HEVCProfileMain10" since="21"/> <field name="HEVCProfileMain10HDR10" since="24"/> - <field name="HEVCProfileMain10HDR10Plus" since="29"/> <field name="HEVCProfileMainStill" since="28"/> <field name="MPEG2LevelH14" since="23"/> <field name="MPEG2LevelHL" since="23"/> @@ -24193,15 +23231,14 @@ <field name="VP9Profile1" since="24"/> <field name="VP9Profile2" since="24"/> <field name="VP9Profile2HDR" since="24"/> - <field name="VP9Profile2HDR10Plus" since="29"/> <field name="VP9Profile3" since="24"/> <field name="VP9Profile3HDR" since="24"/> - <field name="VP9Profile3HDR10Plus" since="29"/> <field name="level"/> <field name="profile"/> </class> <class name="android/media/MediaCodecInfo$EncoderCapabilities" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getComplexityRange()Landroid/util/Range;"/> <method name="getQualityRange()Landroid/util/Range;" since="28"/> <method name="isBitrateModeSupported(I)Z"/> @@ -24211,6 +23248,7 @@ </class> <class name="android/media/MediaCodecInfo$VideoCapabilities" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="areSizeAndRateSupported(IID)Z"/> <method name="getAchievableFrameRatesFor(II)Landroid/util/Range;" since="23"/> <method name="getBitrateRange()Landroid/util/Range;"/> @@ -24219,53 +23257,14 @@ <method name="getSupportedFrameRatesFor(II)Landroid/util/Range;"/> <method name="getSupportedHeights()Landroid/util/Range;"/> <method name="getSupportedHeightsFor(I)Landroid/util/Range;"/> - <method name="getSupportedPerformancePoints()Ljava/util/List;" since="29"/> <method name="getSupportedWidths()Landroid/util/Range;"/> <method name="getSupportedWidthsFor(I)Landroid/util/Range;"/> <method name="getWidthAlignment()I"/> <method name="isSizeSupported(II)Z"/> </class> - <class name="android/media/MediaCodecInfo$VideoCapabilities$PerformancePoint" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(III)V"/> - <method name="covers(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)Z"/> - <method name="covers(Landroid/media/MediaFormat;)Z"/> - <field name="FHD_100"/> - <field name="FHD_120"/> - <field name="FHD_200"/> - <field name="FHD_24"/> - <field name="FHD_240"/> - <field name="FHD_25"/> - <field name="FHD_30"/> - <field name="FHD_50"/> - <field name="FHD_60"/> - <field name="HD_100"/> - <field name="HD_120"/> - <field name="HD_200"/> - <field name="HD_24"/> - <field name="HD_240"/> - <field name="HD_25"/> - <field name="HD_30"/> - <field name="HD_50"/> - <field name="HD_60"/> - <field name="SD_24"/> - <field name="SD_25"/> - <field name="SD_30"/> - <field name="SD_48"/> - <field name="SD_50"/> - <field name="SD_60"/> - <field name="UHD_100"/> - <field name="UHD_120"/> - <field name="UHD_200"/> - <field name="UHD_24"/> - <field name="UHD_240"/> - <field name="UHD_25"/> - <field name="UHD_30"/> - <field name="UHD_50"/> - <field name="UHD_60"/> - </class> <class name="android/media/MediaCodecList" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="21"/> <method name="<init>(I)V" since="21"/> <method name="findDecoderForFormat(Landroid/media/MediaFormat;)Ljava/lang/String;" since="21"/> <method name="findEncoderForFormat(Landroid/media/MediaFormat;)Ljava/lang/String;" since="21"/> @@ -24275,30 +23274,6 @@ <field name="ALL_CODECS" since="21"/> <field name="REGULAR_CODECS" since="21"/> </class> - <class name="android/media/MediaController2" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable"/> - <method name="cancelSessionCommand(Ljava/lang/Object;)V"/> - <method name="getConnectedToken()Landroid/media/Session2Token;"/> - <method name="isPlaybackActive()Z"/> - <method name="sendSessionCommand(Landroid/media/Session2Command;Landroid/os/Bundle;)Ljava/lang/Object;"/> - </class> - <class name="android/media/MediaController2$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;Landroid/media/Session2Token;)V"/> - <method name="build()Landroid/media/MediaController2;"/> - <method name="setConnectionHints(Landroid/os/Bundle;)Landroid/media/MediaController2$Builder;"/> - <method name="setControllerCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)Landroid/media/MediaController2$Builder;"/> - </class> - <class name="android/media/MediaController2$ControllerCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onCommandResult(Landroid/media/MediaController2;Ljava/lang/Object;Landroid/media/Session2Command;Landroid/media/Session2Command$Result;)V"/> - <method name="onConnected(Landroid/media/MediaController2;Landroid/media/Session2CommandGroup;)V"/> - <method name="onDisconnected(Landroid/media/MediaController2;)V"/> - <method name="onPlaybackActiveChanged(Landroid/media/MediaController2;Z)V"/> - <method name="onSessionCommand(Landroid/media/MediaController2;Landroid/media/Session2Command;Landroid/os/Bundle;)Landroid/media/Session2Command$Result;"/> - </class> <class name="android/media/MediaCrypto" since="16"> <extends name="java/lang/Object"/> <method name="<init>(Ljava/util/UUID;[B)V"/> @@ -24334,6 +23309,8 @@ <class name="android/media/MediaDescription" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getDescription()Ljava/lang/CharSequence;"/> <method name="getExtras()Landroid/os/Bundle;"/> <method name="getIconBitmap()Landroid/graphics/Bitmap;"/> @@ -24369,10 +23346,6 @@ <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable" since="28"/> <method name="<init>(Ljava/util/UUID;)V"/> - <method name="clearOnEventListener()V" since="29"/> - <method name="clearOnExpirationUpdateListener()V" since="29"/> - <method name="clearOnKeyStatusChangeListener()V" since="29"/> - <method name="clearOnSessionLostStateListener()V" since="29"/> <method name="closeSession([B)V"/> <method name="getConnectedHdcpLevel()I" since="28"/> <method name="getCryptoSession([BLjava/lang/String;Ljava/lang/String;)Landroid/media/MediaDrm$CryptoSession;"/> @@ -24381,8 +23354,6 @@ <method name="getMaxSecurityLevel()I" since="28"/> <method name="getMaxSessionCount()I" since="28"/> <method name="getMetrics()Landroid/os/PersistableBundle;" since="28"/> - <method name="getOfflineLicenseKeySetIds()Ljava/util/List;" since="29"/> - <method name="getOfflineLicenseState([B)I" since="29"/> <method name="getOpenSessionCount()I" since="28"/> <method name="getPropertyByteArray(Ljava/lang/String;)[B"/> <method name="getPropertyString(Ljava/lang/String;)Ljava/lang/String;"/> @@ -24393,7 +23364,6 @@ <method name="getSecurityLevel([B)I" since="28"/> <method name="isCryptoSchemeSupported(Ljava/util/UUID;)Z"/> <method name="isCryptoSchemeSupported(Ljava/util/UUID;Ljava/lang/String;)Z" since="19"/> - <method name="isCryptoSchemeSupported(Ljava/util/UUID;Ljava/lang/String;I)Z" since="29"/> <method name="openSession()[B"/> <method name="openSession(I)[B" since="28"/> <method name="provideKeyResponse([B[B)[B"/> @@ -24404,18 +23374,11 @@ <method name="releaseSecureStops([B)V"/> <method name="removeAllSecureStops()V" since="28"/> <method name="removeKeys([B)V"/> - <method name="removeOfflineLicense([B)V" since="29"/> <method name="removeSecureStop([B)V" since="28"/> <method name="restoreKeys([B[B)V"/> <method name="setOnEventListener(Landroid/media/MediaDrm$OnEventListener;)V"/> - <method name="setOnEventListener(Landroid/media/MediaDrm$OnEventListener;Landroid/os/Handler;)V" since="29"/> - <method name="setOnEventListener(Ljava/util/concurrent/Executor;Landroid/media/MediaDrm$OnEventListener;)V" since="29"/> <method name="setOnExpirationUpdateListener(Landroid/media/MediaDrm$OnExpirationUpdateListener;Landroid/os/Handler;)V" since="23"/> - <method name="setOnExpirationUpdateListener(Ljava/util/concurrent/Executor;Landroid/media/MediaDrm$OnExpirationUpdateListener;)V" since="29"/> <method name="setOnKeyStatusChangeListener(Landroid/media/MediaDrm$OnKeyStatusChangeListener;Landroid/os/Handler;)V" since="23"/> - <method name="setOnKeyStatusChangeListener(Ljava/util/concurrent/Executor;Landroid/media/MediaDrm$OnKeyStatusChangeListener;)V" since="29"/> - <method name="setOnSessionLostStateListener(Landroid/media/MediaDrm$OnSessionLostStateListener;Landroid/os/Handler;)V" since="29"/> - <method name="setOnSessionLostStateListener(Ljava/util/concurrent/Executor;Landroid/media/MediaDrm$OnSessionLostStateListener;)V" since="29"/> <method name="setPropertyByteArray(Ljava/lang/String;[B)V"/> <method name="setPropertyString(Ljava/lang/String;Ljava/lang/String;)V"/> <field name="EVENT_KEY_EXPIRED" deprecated="26"/> @@ -24430,13 +23393,9 @@ <field name="HDCP_V2" since="28"/> <field name="HDCP_V2_1" since="28"/> <field name="HDCP_V2_2" since="28"/> - <field name="HDCP_V2_3" since="29"/> <field name="KEY_TYPE_OFFLINE"/> <field name="KEY_TYPE_RELEASE"/> <field name="KEY_TYPE_STREAMING"/> - <field name="OFFLINE_LICENSE_STATE_RELEASED" since="29"/> - <field name="OFFLINE_LICENSE_STATE_UNKNOWN" since="29"/> - <field name="OFFLINE_LICENSE_STATE_USABLE" since="29"/> <field name="PROPERTY_ALGORITHMS"/> <field name="PROPERTY_DESCRIPTION"/> <field name="PROPERTY_DEVICE_UNIQUE_ID"/> @@ -24451,17 +23410,20 @@ </class> <class name="android/media/MediaDrm$CryptoSession" since="18"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/MediaDrm;)V" removed="29"/> + <method name="<init>(Landroid/media/MediaDrm;[BLjava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="decrypt([B[B[B)[B"/> <method name="encrypt([B[B[B)[B"/> <method name="sign([B[B)[B"/> <method name="verify([B[B[B)Z"/> </class> - <class name="android/media/MediaDrm$HdcpLevel" since="28" deprecated="29"> + <class name="android/media/MediaDrm$HdcpLevel" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/annotation/Annotation"/> </class> <class name="android/media/MediaDrm$KeyRequest" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getData()[B"/> <method name="getDefaultUrl()Ljava/lang/String;"/> <method name="getRequestType()I" since="23"/> @@ -24473,6 +23435,8 @@ </class> <class name="android/media/MediaDrm$KeyStatus" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([BI)V" since="29"/> <method name="getKeyId()[B"/> <method name="getStatusCode()I"/> <field name="STATUS_EXPIRED"/> @@ -24480,14 +23444,16 @@ <field name="STATUS_OUTPUT_NOT_ALLOWED"/> <field name="STATUS_PENDING"/> <field name="STATUS_USABLE"/> - <field name="STATUS_USABLE_IN_FUTURE" since="29"/> </class> <class name="android/media/MediaDrm$MediaDrmStateException" since="21"> <extends name="java/lang/IllegalStateException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;)V" since="29"/> <method name="getDiagnosticInfo()Ljava/lang/String;"/> </class> <class name="android/media/MediaDrm$MetricsConstants" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CLOSE_SESSION_ERROR_COUNT"/> <field name="CLOSE_SESSION_ERROR_LIST"/> <field name="CLOSE_SESSION_OK_COUNT"/> @@ -24536,26 +23502,16 @@ <extends name="java/lang/Object"/> <method name="onKeyStatusChange(Landroid/media/MediaDrm;[BLjava/util/List;Z)V"/> </class> - <class name="android/media/MediaDrm$OnSessionLostStateListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onSessionLostState(Landroid/media/MediaDrm;[B)V"/> - </class> <class name="android/media/MediaDrm$ProvisionRequest" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getData()[B"/> <method name="getDefaultUrl()Ljava/lang/String;"/> </class> - <class name="android/media/MediaDrm$SecurityLevel" since="28" deprecated="29"> + <class name="android/media/MediaDrm$SecurityLevel" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/annotation/Annotation"/> </class> - <class name="android/media/MediaDrm$SessionException" since="29"> - <extends name="java/lang/RuntimeException"/> - <method name="<init>(ILjava/lang/String;)V"/> - <method name="getErrorCode()I"/> - <field name="ERROR_RESOURCE_CONTENTION"/> - <field name="ERROR_UNKNOWN"/> - </class> <class name="android/media/MediaDrmException" since="18"> <extends name="java/lang/Exception"/> <method name="<init>(Ljava/lang/String;)V"/> @@ -24604,12 +23560,14 @@ </class> <class name="android/media/MediaExtractor$CasInfo" since="26"> <extends name="java/lang/Object"/> - <method name="getPrivateData()[B" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/media/MediaCas$Session;)V" since="29"/> <method name="getSession()Landroid/media/MediaCas$Session;"/> <method name="getSystemId()I"/> </class> <class name="android/media/MediaExtractor$MetricsConstants" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="FORMAT"/> <field name="MIME_TYPE"/> <field name="TRACKS"/> @@ -24617,30 +23575,16 @@ <class name="android/media/MediaFormat" since="16"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="<init>(Landroid/media/MediaFormat;)V" since="29"/> - <method name="containsFeature(Ljava/lang/String;)Z" since="29"/> <method name="containsKey(Ljava/lang/String;)Z"/> <method name="createAudioFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;"/> <method name="createSubtitleFormat(Ljava/lang/String;Ljava/lang/String;)Landroid/media/MediaFormat;" since="19"/> <method name="createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;"/> <method name="getByteBuffer(Ljava/lang/String;)Ljava/nio/ByteBuffer;"/> - <method name="getByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;" since="29"/> <method name="getFeatureEnabled(Ljava/lang/String;)Z" since="21"/> - <method name="getFeatures()Ljava/util/Set;" since="29"/> <method name="getFloat(Ljava/lang/String;)F"/> - <method name="getFloat(Ljava/lang/String;F)F" since="29"/> <method name="getInteger(Ljava/lang/String;)I"/> - <method name="getInteger(Ljava/lang/String;I)I" since="29"/> - <method name="getKeys()Ljava/util/Set;" since="29"/> <method name="getLong(Ljava/lang/String;)J"/> - <method name="getLong(Ljava/lang/String;J)J" since="29"/> - <method name="getNumber(Ljava/lang/String;)Ljava/lang/Number;" since="29"/> - <method name="getNumber(Ljava/lang/String;Ljava/lang/Number;)Ljava/lang/Number;" since="29"/> <method name="getString(Ljava/lang/String;)Ljava/lang/String;"/> - <method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="29"/> - <method name="getValueTypeForKey(Ljava/lang/String;)I" since="29"/> - <method name="removeFeature(Ljava/lang/String;)V" since="29"/> - <method name="removeKey(Ljava/lang/String;)V" since="29"/> <method name="setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V"/> <method name="setFeatureEnabled(Ljava/lang/String;Z)V" since="21"/> <method name="setFloat(Ljava/lang/String;F)V"/> @@ -24677,14 +23621,11 @@ <field name="KEY_COLOR_STANDARD" since="24"/> <field name="KEY_COLOR_TRANSFER" since="24"/> <field name="KEY_COMPLEXITY" since="21"/> - <field name="KEY_CREATE_INPUT_SURFACE_SUSPENDED" since="29"/> <field name="KEY_DURATION"/> <field name="KEY_FLAC_COMPRESSION_LEVEL"/> <field name="KEY_FRAME_RATE"/> <field name="KEY_GRID_COLUMNS" since="28"/> <field name="KEY_GRID_ROWS" since="28"/> - <field name="KEY_HAPTIC_CHANNEL_COUNT" since="29"/> - <field name="KEY_HDR10_PLUS_INFO" since="29"/> <field name="KEY_HDR_STATIC_INFO" since="24"/> <field name="KEY_HEIGHT"/> <field name="KEY_INTRA_REFRESH_PERIOD" since="24"/> @@ -24696,17 +23637,13 @@ <field name="KEY_LANGUAGE" since="19"/> <field name="KEY_LATENCY" since="26"/> <field name="KEY_LEVEL" since="23"/> - <field name="KEY_MAX_B_FRAMES" since="29"/> - <field name="KEY_MAX_FPS_TO_ENCODER" since="29"/> <field name="KEY_MAX_HEIGHT" since="19"/> <field name="KEY_MAX_INPUT_SIZE"/> - <field name="KEY_MAX_PTS_GAP_TO_ENCODER" since="29"/> <field name="KEY_MAX_WIDTH" since="19"/> <field name="KEY_MIME"/> <field name="KEY_OPERATING_RATE" since="23"/> <field name="KEY_OUTPUT_REORDER_DEPTH" since="28"/> <field name="KEY_PCM_ENCODING" since="24"/> - <field name="KEY_PREPEND_HEADER_TO_SYNC_FRAMES" since="29"/> <field name="KEY_PRIORITY" since="23"/> <field name="KEY_PROFILE" since="21"/> <field name="KEY_PUSH_BLANK_BUFFERS_ON_STOP" since="19"/> @@ -24723,11 +23660,9 @@ <field name="KEY_WIDTH"/> <field name="MIMETYPE_AUDIO_AAC" since="21"/> <field name="MIMETYPE_AUDIO_AC3" since="21"/> - <field name="MIMETYPE_AUDIO_AC4" since="29"/> <field name="MIMETYPE_AUDIO_AMR_NB" since="21"/> <field name="MIMETYPE_AUDIO_AMR_WB" since="21"/> <field name="MIMETYPE_AUDIO_EAC3" since="23"/> - <field name="MIMETYPE_AUDIO_EAC3_JOC" since="29"/> <field name="MIMETYPE_AUDIO_FLAC" since="21"/> <field name="MIMETYPE_AUDIO_G711_ALAW" since="21"/> <field name="MIMETYPE_AUDIO_G711_MLAW" since="21"/> @@ -24743,7 +23678,6 @@ <field name="MIMETYPE_TEXT_CEA_708" since="28"/> <field name="MIMETYPE_TEXT_SUBRIP" since="28"/> <field name="MIMETYPE_TEXT_VTT" since="21"/> - <field name="MIMETYPE_VIDEO_AV1" since="29"/> <field name="MIMETYPE_VIDEO_AVC" since="21"/> <field name="MIMETYPE_VIDEO_DOLBY_VISION" since="24"/> <field name="MIMETYPE_VIDEO_H263" since="21"/> @@ -24754,16 +23688,12 @@ <field name="MIMETYPE_VIDEO_SCRAMBLED" since="26"/> <field name="MIMETYPE_VIDEO_VP8" since="21"/> <field name="MIMETYPE_VIDEO_VP9" since="21"/> - <field name="TYPE_BYTE_BUFFER" since="29"/> - <field name="TYPE_FLOAT" since="29"/> - <field name="TYPE_INTEGER" since="29"/> - <field name="TYPE_LONG" since="29"/> - <field name="TYPE_NULL" since="29"/> - <field name="TYPE_STRING" since="29"/> </class> <class name="android/media/MediaMetadata" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Bundle;)V" since="29"/> <method name="containsKey(Ljava/lang/String;)Z"/> <method name="getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;"/> <method name="getDescription()Landroid/media/MediaDescription;"/> @@ -24817,26 +23747,26 @@ </class> <class name="android/media/MediaMetadataEditor" since="19" deprecated="21"> <extends name="java/lang/Object"/> - <method name="addEditableKey(I)V" deprecated="29"/> - <method name="apply()V" deprecated="29"/> - <method name="clear()V" deprecated="29"/> - <method name="getBitmap(ILandroid/graphics/Bitmap;)Landroid/graphics/Bitmap;" deprecated="29"/> - <method name="getEditableKeys()[I" deprecated="29"/> - <method name="getLong(IJ)J" deprecated="29"/> - <method name="getObject(ILjava/lang/Object;)Ljava/lang/Object;" deprecated="29"/> - <method name="getString(ILjava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/MediaMetadataEditor;" deprecated="29"/> - <method name="putLong(IJ)Landroid/media/MediaMetadataEditor;" deprecated="29"/> - <method name="putObject(ILjava/lang/Object;)Landroid/media/MediaMetadataEditor;" deprecated="29"/> - <method name="putString(ILjava/lang/String;)Landroid/media/MediaMetadataEditor;" deprecated="29"/> - <method name="removeEditableKeys()V" deprecated="29"/> - <field name="BITMAP_KEY_ARTWORK" deprecated="29"/> - <field name="RATING_KEY_BY_OTHERS" deprecated="29"/> - <field name="RATING_KEY_BY_USER" deprecated="29"/> + <method name="<init>()V"/> + <method name="addEditableKey(I)V"/> + <method name="apply()V"/> + <method name="clear()V"/> + <method name="getBitmap(ILandroid/graphics/Bitmap;)Landroid/graphics/Bitmap;"/> + <method name="getEditableKeys()[I"/> + <method name="getLong(IJ)J"/> + <method name="getObject(ILjava/lang/Object;)Ljava/lang/Object;"/> + <method name="getString(ILjava/lang/String;)Ljava/lang/String;"/> + <method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/MediaMetadataEditor;"/> + <method name="putLong(IJ)Landroid/media/MediaMetadataEditor;"/> + <method name="putObject(ILjava/lang/Object;)Landroid/media/MediaMetadataEditor;"/> + <method name="putString(ILjava/lang/String;)Landroid/media/MediaMetadataEditor;"/> + <method name="removeEditableKeys()V"/> + <field name="BITMAP_KEY_ARTWORK"/> + <field name="RATING_KEY_BY_OTHERS"/> + <field name="RATING_KEY_BY_USER"/> </class> <class name="android/media/MediaMetadataRetriever" since="10"> <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable" since="29"/> <method name="<init>()V"/> <method name="extractMetadata(I)Ljava/lang/String;"/> <method name="getEmbeddedPicture()[B"/> @@ -24871,8 +23801,6 @@ <field name="METADATA_KEY_DATE"/> <field name="METADATA_KEY_DISC_NUMBER"/> <field name="METADATA_KEY_DURATION"/> - <field name="METADATA_KEY_EXIF_LENGTH" since="29"/> - <field name="METADATA_KEY_EXIF_OFFSET" since="29"/> <field name="METADATA_KEY_GENRE"/> <field name="METADATA_KEY_HAS_AUDIO" since="14"/> <field name="METADATA_KEY_HAS_IMAGE" since="28"/> @@ -24918,10 +23846,10 @@ </class> <class name="android/media/MediaMuxer$OutputFormat" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MUXER_OUTPUT_3GPP" since="26"/> <field name="MUXER_OUTPUT_HEIF" since="28"/> <field name="MUXER_OUTPUT_MPEG_4"/> - <field name="MUXER_OUTPUT_OGG" since="29"/> <field name="MUXER_OUTPUT_WEBM" since="21"/> </class> <class name="android/media/MediaPlayer" since="1"> @@ -25047,11 +23975,14 @@ </class> <class name="android/media/MediaPlayer$DrmInfo" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getPssh()Ljava/util/Map;"/> <method name="getSupportedSchemes()[Ljava/util/UUID;"/> </class> <class name="android/media/MediaPlayer$MetricsConstants" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CODEC_AUDIO"/> <field name="CODEC_VIDEO"/> <field name="DURATION"/> @@ -25136,6 +24067,8 @@ <class name="android/media/MediaPlayer$TrackInfo" since="16"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getFormat()Landroid/media/MediaFormat;" since="19"/> <method name="getLanguage()Ljava/lang/String;"/> <method name="getTrackType()I"/> @@ -25148,9 +24081,7 @@ </class> <class name="android/media/MediaRecorder" since="1"> <extends name="java/lang/Object"/> - <implements name="android/media/AudioRecordingMonitor" since="29"/> <implements name="android/media/AudioRouting" since="28"/> - <implements name="android/media/MicrophoneDirection" since="29"/> <method name="<init>()V"/> <method name="getActiveMicrophones()Ljava/util/List;" since="28"/> <method name="getAudioSourceMax()I" since="4"/> @@ -25167,8 +24098,8 @@ <method name="setAudioEncodingBitRate(I)V" since="8"/> <method name="setAudioSamplingRate(I)V" since="8"/> <method name="setAudioSource(I)V"/> - <method name="setAuxiliaryOutputFile(Ljava/io/FileDescriptor;)V" since="11" deprecated="15" removed="16"/> - <method name="setAuxiliaryOutputFile(Ljava/lang/String;)V" since="11" deprecated="15" removed="16"/> + <method name="setAuxiliaryOutputFile(Ljava/io/FileDescriptor;)V" since="11" removed="16"/> + <method name="setAuxiliaryOutputFile(Ljava/lang/String;)V" since="11" removed="16"/> <method name="setCamera(Landroid/hardware/Camera;)V" since="3" deprecated="21"/> <method name="setCaptureRate(D)V" since="11"/> <method name="setInputSurface(Landroid/view/Surface;)V" since="23"/> @@ -25204,17 +24135,18 @@ </class> <class name="android/media/MediaRecorder$AudioEncoder" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/MediaRecorder;)V"/> <field name="AAC" since="10"/> <field name="AAC_ELD" since="16"/> <field name="AMR_NB"/> <field name="AMR_WB" since="10"/> <field name="DEFAULT"/> <field name="HE_AAC" since="16"/> - <field name="OPUS" since="29"/> <field name="VORBIS" since="21"/> </class> <class name="android/media/MediaRecorder$AudioSource" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/MediaRecorder;)V"/> <field name="CAMCORDER" since="7"/> <field name="DEFAULT"/> <field name="MIC"/> @@ -25223,12 +24155,12 @@ <field name="VOICE_CALL" since="4"/> <field name="VOICE_COMMUNICATION" since="11"/> <field name="VOICE_DOWNLINK" since="4"/> - <field name="VOICE_PERFORMANCE" since="29"/> <field name="VOICE_RECOGNITION" since="7"/> <field name="VOICE_UPLINK" since="4"/> </class> <class name="android/media/MediaRecorder$MetricsConstants" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="AUDIO_BITRATE"/> <field name="AUDIO_CHANNELS"/> <field name="AUDIO_SAMPLERATE"/> @@ -25256,19 +24188,20 @@ </class> <class name="android/media/MediaRecorder$OutputFormat" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/MediaRecorder;)V"/> <field name="AAC_ADTS" since="16"/> <field name="AMR_NB" since="10"/> <field name="AMR_WB" since="10"/> <field name="DEFAULT"/> <field name="MPEG_2_TS" since="26"/> <field name="MPEG_4"/> - <field name="OGG" since="29"/> <field name="RAW_AMR" since="3" deprecated="16"/> <field name="THREE_GPP"/> <field name="WEBM" since="21"/> </class> <class name="android/media/MediaRecorder$VideoEncoder" since="3"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/MediaRecorder;)V"/> <field name="DEFAULT"/> <field name="H263"/> <field name="H264"/> @@ -25278,12 +24211,15 @@ </class> <class name="android/media/MediaRecorder$VideoSource" since="3"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/MediaRecorder;)V"/> <field name="CAMERA"/> <field name="DEFAULT"/> <field name="SURFACE" since="21"/> </class> <class name="android/media/MediaRouter" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addCallback(ILandroid/media/MediaRouter$Callback;)V"/> <method name="addCallback(ILandroid/media/MediaRouter$Callback;I)V" since="18"/> <method name="addUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V"/> @@ -25321,6 +24257,8 @@ </class> <class name="android/media/MediaRouter$RouteCategory" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/CharSequence;IZ)V" since="29"/> <method name="getName()Ljava/lang/CharSequence;"/> <method name="getName(Landroid/content/Context;)Ljava/lang/CharSequence;"/> <method name="getRoutes(Ljava/util/List;)Ljava/util/List;"/> @@ -25329,6 +24267,8 @@ </class> <class name="android/media/MediaRouter$RouteGroup" since="16"> <extends name="android/media/MediaRouter$RouteInfo"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/MediaRouter$RouteCategory;)V" since="29"/> <method name="addRoute(Landroid/media/MediaRouter$RouteInfo;)V"/> <method name="addRoute(Landroid/media/MediaRouter$RouteInfo;I)V"/> <method name="getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;"/> @@ -25340,6 +24280,8 @@ </class> <class name="android/media/MediaRouter$RouteInfo" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/MediaRouter$RouteCategory;)V" since="29"/> <method name="getCategory()Landroid/media/MediaRouter$RouteCategory;"/> <method name="getDescription()Ljava/lang/CharSequence;" since="18"/> <method name="getDeviceType()I" since="24"/> @@ -25376,6 +24318,8 @@ </class> <class name="android/media/MediaRouter$UserRouteInfo" since="16"> <extends name="android/media/MediaRouter$RouteInfo"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/MediaRouter$RouteCategory;)V" since="29"/> <method name="getRemoteControlClient()Landroid/media/RemoteControlClient;"/> <method name="setDescription(Ljava/lang/CharSequence;)V" since="18"/> <method name="setIconDrawable(Landroid/graphics/drawable/Drawable;)V"/> @@ -25417,59 +24361,6 @@ <extends name="java/lang/Object"/> <method name="onScanCompleted(Ljava/lang/String;Landroid/net/Uri;)V"/> </class> - <class name="android/media/MediaSession2" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable"/> - <method name="broadcastSessionCommand(Landroid/media/Session2Command;Landroid/os/Bundle;)V"/> - <method name="cancelSessionCommand(Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/Object;)V"/> - <method name="getConnectedControllers()Ljava/util/List;"/> - <method name="getId()Ljava/lang/String;"/> - <method name="getToken()Landroid/media/Session2Token;"/> - <method name="isPlaybackActive()Z"/> - <method name="sendSessionCommand(Landroid/media/MediaSession2$ControllerInfo;Landroid/media/Session2Command;Landroid/os/Bundle;)Ljava/lang/Object;"/> - <method name="setPlaybackActive(Z)V"/> - </class> - <class name="android/media/MediaSession2$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;)V"/> - <method name="build()Landroid/media/MediaSession2;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/media/MediaSession2$Builder;"/> - <method name="setId(Ljava/lang/String;)Landroid/media/MediaSession2$Builder;"/> - <method name="setSessionActivity(Landroid/app/PendingIntent;)Landroid/media/MediaSession2$Builder;"/> - <method name="setSessionCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaSession2$SessionCallback;)Landroid/media/MediaSession2$Builder;"/> - </class> - <class name="android/media/MediaSession2$ControllerInfo" since="29"> - <extends name="java/lang/Object"/> - <method name="getConnectionHints()Landroid/os/Bundle;"/> - <method name="getPackageName()Ljava/lang/String;"/> - <method name="getRemoteUserInfo()Landroid/media/session/MediaSessionManager$RemoteUserInfo;"/> - <method name="getUid()I"/> - </class> - <class name="android/media/MediaSession2$SessionCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onCommandResult(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/Object;Landroid/media/Session2Command;Landroid/media/Session2Command$Result;)V"/> - <method name="onConnect(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;)Landroid/media/Session2CommandGroup;"/> - <method name="onDisconnected(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;)V"/> - <method name="onPostConnect(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;)V"/> - <method name="onSessionCommand(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Landroid/media/Session2Command;Landroid/os/Bundle;)Landroid/media/Session2Command$Result;"/> - </class> - <class name="android/media/MediaSession2Service" since="29"> - <extends name="android/app/Service"/> - <method name="<init>()V"/> - <method name="addSession(Landroid/media/MediaSession2;)V"/> - <method name="getSessions()Ljava/util/List;"/> - <method name="onGetSession(Landroid/media/MediaSession2$ControllerInfo;)Landroid/media/MediaSession2;"/> - <method name="onUpdateNotification(Landroid/media/MediaSession2;)Landroid/media/MediaSession2Service$MediaNotification;"/> - <method name="removeSession(Landroid/media/MediaSession2;)V"/> - <field name="SERVICE_INTERFACE"/> - </class> - <class name="android/media/MediaSession2Service$MediaNotification" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(ILandroid/app/Notification;)V"/> - <method name="getNotification()Landroid/app/Notification;"/> - <method name="getNotificationId()I"/> - </class> <class name="android/media/MediaSync" since="23"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -25500,6 +24391,8 @@ </class> <class name="android/media/MediaSyncEvent" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="createEvent(I)Landroid/media/MediaSyncEvent;"/> <method name="getAudioSessionId()I"/> <method name="getType()I"/> @@ -25509,24 +24402,16 @@ </class> <class name="android/media/MediaTimestamp" since="23"> <extends name="java/lang/Object"/> - <method name="<init>(JJF)V" since="29"/> + <method name="<init>()V"/> <method name="getAnchorMediaTimeUs()J"/> - <method name="getAnchorSystemNanoTime()J" since="29"/> - <method name="getAnchorSytemNanoTime()J" deprecated="29"/> + <method name="getAnchorSytemNanoTime()J"/> <method name="getMediaClockRate()F"/> <field name="TIMESTAMP_UNKNOWN" since="28"/> </class> - <class name="android/media/MicrophoneDirection" since="29"> - <extends name="java/lang/Object"/> - <method name="setPreferredMicrophoneDirection(I)Z"/> - <method name="setPreferredMicrophoneFieldDimension(F)Z"/> - <field name="MIC_DIRECTION_AWAY_FROM_USER"/> - <field name="MIC_DIRECTION_EXTERNAL"/> - <field name="MIC_DIRECTION_TOWARDS_USER"/> - <field name="MIC_DIRECTION_UNSPECIFIED"/> - </class> <class name="android/media/MicrophoneInfo" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;ILjava/lang/String;IIILandroid/media/MicrophoneInfo$Coordinate3F;Landroid/media/MicrophoneInfo$Coordinate3F;Ljava/util/List;Ljava/util/List;FFFI)V" since="29"/> <method name="getAddress()Ljava/lang/String;"/> <method name="getChannelMapping()Ljava/util/List;"/> <method name="getDescription()Ljava/lang/String;"/> @@ -25563,6 +24448,8 @@ </class> <class name="android/media/MicrophoneInfo$Coordinate3F" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(FFF)V" since="29"/> <field name="x"/> <field name="y"/> <field name="z"/> @@ -25590,6 +24477,8 @@ <class name="android/media/Rating" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IF)V" since="29"/> <method name="getPercentRating()F"/> <method name="getRatingStyle()I"/> <method name="getStarRating()F"/> @@ -25612,83 +24501,85 @@ </class> <class name="android/media/RemoteControlClient" since="14" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/app/PendingIntent;)V" deprecated="29"/> - <method name="<init>(Landroid/app/PendingIntent;Landroid/os/Looper;)V" deprecated="29"/> - <method name="editMetadata(Z)Landroid/media/RemoteControlClient$MetadataEditor;" deprecated="29"/> - <method name="getMediaSession()Landroid/media/session/MediaSession;" since="21" deprecated="29"/> - <method name="setMetadataUpdateListener(Landroid/media/RemoteControlClient$OnMetadataUpdateListener;)V" since="19" deprecated="29"/> - <method name="setOnGetPlaybackPositionListener(Landroid/media/RemoteControlClient$OnGetPlaybackPositionListener;)V" since="18" deprecated="29"/> - <method name="setPlaybackPositionUpdateListener(Landroid/media/RemoteControlClient$OnPlaybackPositionUpdateListener;)V" since="18" deprecated="29"/> - <method name="setPlaybackState(I)V" deprecated="29"/> - <method name="setPlaybackState(IJF)V" since="18" deprecated="29"/> - <method name="setTransportControlFlags(I)V" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_FAST_FORWARD" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_NEXT" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_PAUSE" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_PLAY" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_PLAY_PAUSE" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_POSITION_UPDATE" since="18" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_PREVIOUS" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_RATING" since="19" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_REWIND" deprecated="29"/> - <field name="FLAG_KEY_MEDIA_STOP" deprecated="29"/> - <field name="PLAYSTATE_BUFFERING" deprecated="29"/> - <field name="PLAYSTATE_ERROR" deprecated="29"/> - <field name="PLAYSTATE_FAST_FORWARDING" deprecated="29"/> - <field name="PLAYSTATE_PAUSED" deprecated="29"/> - <field name="PLAYSTATE_PLAYING" deprecated="29"/> - <field name="PLAYSTATE_REWINDING" deprecated="29"/> - <field name="PLAYSTATE_SKIPPING_BACKWARDS" deprecated="29"/> - <field name="PLAYSTATE_SKIPPING_FORWARDS" deprecated="29"/> - <field name="PLAYSTATE_STOPPED" deprecated="29"/> + <method name="<init>(Landroid/app/PendingIntent;)V"/> + <method name="<init>(Landroid/app/PendingIntent;Landroid/os/Looper;)V"/> + <method name="editMetadata(Z)Landroid/media/RemoteControlClient$MetadataEditor;"/> + <method name="getMediaSession()Landroid/media/session/MediaSession;" since="21"/> + <method name="setMetadataUpdateListener(Landroid/media/RemoteControlClient$OnMetadataUpdateListener;)V" since="19"/> + <method name="setOnGetPlaybackPositionListener(Landroid/media/RemoteControlClient$OnGetPlaybackPositionListener;)V" since="18"/> + <method name="setPlaybackPositionUpdateListener(Landroid/media/RemoteControlClient$OnPlaybackPositionUpdateListener;)V" since="18"/> + <method name="setPlaybackState(I)V"/> + <method name="setPlaybackState(IJF)V" since="18"/> + <method name="setTransportControlFlags(I)V"/> + <field name="FLAG_KEY_MEDIA_FAST_FORWARD"/> + <field name="FLAG_KEY_MEDIA_NEXT"/> + <field name="FLAG_KEY_MEDIA_PAUSE"/> + <field name="FLAG_KEY_MEDIA_PLAY"/> + <field name="FLAG_KEY_MEDIA_PLAY_PAUSE"/> + <field name="FLAG_KEY_MEDIA_POSITION_UPDATE" since="18"/> + <field name="FLAG_KEY_MEDIA_PREVIOUS"/> + <field name="FLAG_KEY_MEDIA_RATING" since="19"/> + <field name="FLAG_KEY_MEDIA_REWIND"/> + <field name="FLAG_KEY_MEDIA_STOP"/> + <field name="PLAYSTATE_BUFFERING"/> + <field name="PLAYSTATE_ERROR"/> + <field name="PLAYSTATE_FAST_FORWARDING"/> + <field name="PLAYSTATE_PAUSED"/> + <field name="PLAYSTATE_PLAYING"/> + <field name="PLAYSTATE_REWINDING"/> + <field name="PLAYSTATE_SKIPPING_BACKWARDS"/> + <field name="PLAYSTATE_SKIPPING_FORWARDS"/> + <field name="PLAYSTATE_STOPPED"/> </class> <class name="android/media/RemoteControlClient$MetadataEditor" since="14" deprecated="21"> <extends name="android/media/MediaMetadataEditor" since="19"/> <extends name="java/lang/Object" removed="19"/> - <method name="apply()V" deprecated="29"/> - <method name="clear()V" deprecated="29"/> - <method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/RemoteControlClient$MetadataEditor;" deprecated="29"/> - <method name="putLong(IJ)Landroid/media/RemoteControlClient$MetadataEditor;" deprecated="29"/> - <method name="putObject(ILjava/lang/Object;)Landroid/media/RemoteControlClient$MetadataEditor;" since="21" deprecated="29"/> - <method name="putString(ILjava/lang/String;)Landroid/media/RemoteControlClient$MetadataEditor;" deprecated="29"/> - <field name="BITMAP_KEY_ARTWORK" deprecated="29"/> + <method name="<init>(Landroid/media/RemoteControlClient;)V"/> + <method name="apply()V"/> + <method name="clear()V"/> + <method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/RemoteControlClient$MetadataEditor;"/> + <method name="putLong(IJ)Landroid/media/RemoteControlClient$MetadataEditor;"/> + <method name="putObject(ILjava/lang/Object;)Landroid/media/RemoteControlClient$MetadataEditor;" since="22"/> + <method name="putString(ILjava/lang/String;)Landroid/media/RemoteControlClient$MetadataEditor;"/> + <field name="BITMAP_KEY_ARTWORK"/> </class> - <class name="android/media/RemoteControlClient$OnGetPlaybackPositionListener" since="18" deprecated="29"> + <class name="android/media/RemoteControlClient$OnGetPlaybackPositionListener" since="18"> <extends name="java/lang/Object"/> - <method name="onGetPlaybackPosition()J" deprecated="29"/> + <method name="onGetPlaybackPosition()J"/> </class> - <class name="android/media/RemoteControlClient$OnMetadataUpdateListener" since="19" deprecated="29"> + <class name="android/media/RemoteControlClient$OnMetadataUpdateListener" since="19"> <extends name="java/lang/Object"/> - <method name="onMetadataUpdate(ILjava/lang/Object;)V" deprecated="29"/> + <method name="onMetadataUpdate(ILjava/lang/Object;)V"/> </class> - <class name="android/media/RemoteControlClient$OnPlaybackPositionUpdateListener" since="18" deprecated="29"> + <class name="android/media/RemoteControlClient$OnPlaybackPositionUpdateListener" since="18"> <extends name="java/lang/Object"/> - <method name="onPlaybackPositionUpdate(J)V" deprecated="29"/> + <method name="onPlaybackPositionUpdate(J)V"/> </class> <class name="android/media/RemoteController" since="19" deprecated="21"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;Landroid/media/RemoteController$OnClientUpdateListener;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/media/RemoteController$OnClientUpdateListener;Landroid/os/Looper;)V" deprecated="29"/> - <method name="clearArtworkConfiguration()Z" deprecated="29"/> - <method name="editMetadata()Landroid/media/RemoteController$MetadataEditor;" deprecated="29"/> - <method name="getEstimatedMediaPosition()J" deprecated="29"/> - <method name="seekTo(J)Z" deprecated="29"/> - <method name="sendMediaKeyEvent(Landroid/view/KeyEvent;)Z" deprecated="29"/> - <method name="setArtworkConfiguration(II)Z" deprecated="29"/> - <method name="setSynchronizationMode(I)Z" deprecated="29"/> - <field name="POSITION_SYNCHRONIZATION_CHECK" deprecated="29"/> - <field name="POSITION_SYNCHRONIZATION_NONE" deprecated="29"/> + <method name="<init>(Landroid/content/Context;Landroid/media/RemoteController$OnClientUpdateListener;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/media/RemoteController$OnClientUpdateListener;Landroid/os/Looper;)V"/> + <method name="clearArtworkConfiguration()Z"/> + <method name="editMetadata()Landroid/media/RemoteController$MetadataEditor;"/> + <method name="getEstimatedMediaPosition()J"/> + <method name="seekTo(J)Z"/> + <method name="sendMediaKeyEvent(Landroid/view/KeyEvent;)Z"/> + <method name="setArtworkConfiguration(II)Z"/> + <method name="setSynchronizationMode(I)Z"/> + <field name="POSITION_SYNCHRONIZATION_CHECK"/> + <field name="POSITION_SYNCHRONIZATION_NONE"/> </class> - <class name="android/media/RemoteController$MetadataEditor" since="19" deprecated="29"> + <class name="android/media/RemoteController$MetadataEditor" since="19"> <extends name="android/media/MediaMetadataEditor"/> + <method name="<init>(Landroid/media/RemoteController;)V"/> </class> - <class name="android/media/RemoteController$OnClientUpdateListener" since="19" deprecated="29"> + <class name="android/media/RemoteController$OnClientUpdateListener" since="19"> <extends name="java/lang/Object"/> - <method name="onClientChange(Z)V" deprecated="29"/> - <method name="onClientMetadataUpdate(Landroid/media/RemoteController$MetadataEditor;)V" deprecated="29"/> - <method name="onClientPlaybackStateUpdate(I)V" deprecated="29"/> - <method name="onClientPlaybackStateUpdate(IJJF)V" deprecated="29"/> - <method name="onClientTransportControlUpdate(I)V" deprecated="29"/> + <method name="onClientChange(Z)V"/> + <method name="onClientMetadataUpdate(Landroid/media/RemoteController$MetadataEditor;)V"/> + <method name="onClientPlaybackStateUpdate(I)V"/> + <method name="onClientPlaybackStateUpdate(IJJF)V"/> + <method name="onClientTransportControlUpdate(I)V"/> </class> <class name="android/media/ResourceBusyException" since="19"> <extends name="android/media/MediaDrmException"/> @@ -25696,6 +24587,8 @@ </class> <class name="android/media/Ringtone" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Z)V" since="29"/> <method name="getAudioAttributes()Landroid/media/AudioAttributes;" since="21"/> <method name="getStreamType()I" deprecated="21"/> <method name="getTitle(Landroid/content/Context;)Ljava/lang/String;"/> @@ -25724,11 +24617,8 @@ <method name="getRingtoneUri(I)Landroid/net/Uri;"/> <method name="getStopPreviousRingtone()Z"/> <method name="getValidRingtoneUri(Landroid/content/Context;)Landroid/net/Uri;"/> - <method name="hasHapticChannels(I)Z" since="29"/> - <method name="hasHapticChannels(Landroid/net/Uri;)Z" since="29"/> <method name="inferStreamType()I" since="3"/> <method name="isDefault(Landroid/net/Uri;)Z"/> - <method name="openDefaultRingtoneUri(Landroid/content/Context;Landroid/net/Uri;)Landroid/content/res/AssetFileDescriptor;" since="29"/> <method name="setActualDefaultRingtoneUri(Landroid/content/Context;ILandroid/net/Uri;)V"/> <method name="setIncludeDrm(Z)V" deprecated="19"/> <method name="setStopPreviousRingtone(Z)V"/> @@ -25751,55 +24641,6 @@ <field name="TYPE_RINGTONE"/> <field name="URI_COLUMN_INDEX"/> </class> - <class name="android/media/Session2Command" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(I)V"/> - <method name="<init>(Ljava/lang/String;Landroid/os/Bundle;)V"/> - <method name="getCommandCode()I"/> - <method name="getCustomAction()Ljava/lang/String;"/> - <method name="getCustomExtras()Landroid/os/Bundle;"/> - <field name="COMMAND_CODE_CUSTOM"/> - <field name="CREATOR"/> - </class> - <class name="android/media/Session2Command$Result" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(ILandroid/os/Bundle;)V"/> - <method name="getResultCode()I"/> - <method name="getResultData()Landroid/os/Bundle;"/> - <field name="RESULT_ERROR_UNKNOWN_ERROR"/> - <field name="RESULT_INFO_SKIPPED"/> - <field name="RESULT_SUCCESS"/> - </class> - <class name="android/media/Session2CommandGroup" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getCommands()Ljava/util/Set;"/> - <method name="hasCommand(I)Z"/> - <method name="hasCommand(Landroid/media/Session2Command;)Z"/> - <field name="CREATOR"/> - </class> - <class name="android/media/Session2CommandGroup$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="<init>(Landroid/media/Session2CommandGroup;)V"/> - <method name="addCommand(Landroid/media/Session2Command;)Landroid/media/Session2CommandGroup$Builder;"/> - <method name="build()Landroid/media/Session2CommandGroup;"/> - <method name="removeCommand(Landroid/media/Session2Command;)Landroid/media/Session2CommandGroup$Builder;"/> - </class> - <class name="android/media/Session2Token" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Landroid/content/Context;Landroid/content/ComponentName;)V"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getPackageName()Ljava/lang/String;"/> - <method name="getServiceName()Ljava/lang/String;"/> - <method name="getType()I"/> - <method name="getUid()I"/> - <field name="CREATOR"/> - <field name="TYPE_SESSION"/> - <field name="TYPE_SESSION_SERVICE"/> - </class> <class name="android/media/SoundPool" since="1"> <extends name="java/lang/Object"/> <method name="<init>(III)V" deprecated="21"/> @@ -25834,7 +24675,8 @@ </class> <class name="android/media/SubtitleData" since="28"> <extends name="java/lang/Object"/> - <method name="<init>(IJJ[B)V" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getData()[B"/> <method name="getDurationUs()J"/> <method name="getStartTimeUs()J"/> @@ -25863,24 +24705,22 @@ <class name="android/media/ThumbnailUtils" since="8"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="createAudioThumbnail(Ljava/io/File;Landroid/util/Size;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;" since="29"/> - <method name="createAudioThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;" since="29" deprecated="29"/> - <method name="createImageThumbnail(Ljava/io/File;Landroid/util/Size;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;" since="29"/> - <method name="createImageThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;" since="29" deprecated="29"/> - <method name="createVideoThumbnail(Ljava/io/File;Landroid/util/Size;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;" since="29"/> - <method name="createVideoThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;" deprecated="29"/> + <method name="createVideoThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;"/> <method name="extractThumbnail(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;"/> <method name="extractThumbnail(Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;"/> <field name="OPTIONS_RECYCLE_INPUT"/> </class> <class name="android/media/TimedMetaData" since="23"> <extends name="java/lang/Object"/> - <method name="<init>(J[B)V" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getMetaData()[B"/> <method name="getTimestamp()J"/> </class> <class name="android/media/TimedText" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getBounds()Landroid/graphics/Rect;"/> <method name="getText()Ljava/lang/String;"/> </class> @@ -26018,6 +24858,7 @@ <class name="android/media/VolumeShaper" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="apply(Landroid/media/VolumeShaper$Operation;)V"/> <method name="getVolume()F"/> <method name="replace(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;Z)V"/> @@ -26025,6 +24866,8 @@ <class name="android/media/VolumeShaper$Configuration" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="getDuration()J"/> <method name="getInterpolatorType()I"/> <method name="getMaximumCurvePoints()I"/> @@ -26056,17 +24899,23 @@ <class name="android/media/VolumeShaper$Operation" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIF)V" since="29"/> <field name="CREATOR"/> <field name="PLAY"/> <field name="REVERSE"/> </class> <class name="android/media/audiofx/AcousticEchoCanceler" since="16"> <extends name="android/media/audiofx/AudioEffect"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="create(I)Landroid/media/audiofx/AcousticEchoCanceler;"/> <method name="isAvailable()Z"/> </class> <class name="android/media/audiofx/AudioEffect" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/UUID;Ljava/util/UUID;II)V" since="29"/> <method name="getDescriptor()Landroid/media/audiofx/AudioEffect$Descriptor;"/> <method name="getEnabled()Z"/> <method name="getId()I"/> @@ -26127,6 +24976,8 @@ </class> <class name="android/media/audiofx/AutomaticGainControl" since="16"> <extends name="android/media/audiofx/AudioEffect"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="create(I)Landroid/media/audiofx/AutomaticGainControl;"/> <method name="isAvailable()Z"/> </class> @@ -26224,6 +25075,8 @@ </class> <class name="android/media/audiofx/DynamicsProcessing$Config" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/audiofx/DynamicsProcessing$Config;)V" since="29"/> <method name="getChannelByChannelIndex(I)Landroid/media/audiofx/DynamicsProcessing$Channel;"/> <method name="getInputGainByChannelIndex(I)F"/> <method name="getLimiterByChannelIndex(I)Landroid/media/audiofx/DynamicsProcessing$Limiter;"/> @@ -26452,6 +25305,8 @@ </class> <class name="android/media/audiofx/NoiseSuppressor" since="16"> <extends name="android/media/audiofx/AudioEffect"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="create(I)Landroid/media/audiofx/NoiseSuppressor;"/> <method name="isAvailable()Z"/> </class> @@ -26621,12 +25476,15 @@ </class> <class name="android/media/effect/EffectContext" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createWithCurrentGlContext()Landroid/media/effect/EffectContext;"/> <method name="getFactory()Landroid/media/effect/EffectFactory;"/> <method name="release()V"/> </class> <class name="android/media/effect/EffectFactory" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/effect/EffectContext;)V" since="29"/> <method name="createEffect(Ljava/lang/String;)Landroid/media/effect/Effect;"/> <method name="isEffectSupported(Ljava/lang/String;)Z"/> <field name="EFFECT_AUTOFIX"/> @@ -26664,6 +25522,7 @@ <class name="android/media/midi/MidiDevice" since="23"> <extends name="java/lang/Object"/> <implements name="java/io/Closeable"/> + <method name="<init>()V"/> <method name="connectPorts(Landroid/media/midi/MidiInputPort;I)Landroid/media/midi/MidiDevice$MidiConnection;"/> <method name="getInfo()Landroid/media/midi/MidiDeviceInfo;"/> <method name="openInputPort(I)Landroid/media/midi/MidiInputPort;"/> @@ -26672,10 +25531,14 @@ <class name="android/media/midi/MidiDevice$MidiConnection" since="23"> <extends name="java/lang/Object"/> <implements name="java/io/Closeable"/> + <method name="<init>(Landroid/media/midi/MidiDevice;)V" removed="29"/> + <method name="<init>(Landroid/media/midi/MidiDevice;Landroid/os/IBinder;Landroid/media/midi/MidiInputPort;)V" since="29"/> </class> <class name="android/media/midi/MidiDeviceInfo" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Z)V" since="29"/> <method name="getId()I"/> <method name="getInputPortCount()I"/> <method name="getOutputPortCount()I"/> @@ -26697,6 +25560,8 @@ </class> <class name="android/media/midi/MidiDeviceInfo$PortInfo" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IILjava/lang/String;)V" since="29"/> <method name="getName()Ljava/lang/String;"/> <method name="getPortNumber()I"/> <method name="getType()I"/> @@ -26716,6 +25581,8 @@ <class name="android/media/midi/MidiDeviceStatus" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/media/midi/MidiDeviceInfo;)V" since="29"/> <method name="getDeviceInfo()Landroid/media/midi/MidiDeviceInfo;"/> <method name="getOutputPortOpenCount(I)I"/> <method name="isInputPortOpen(I)Z"/> @@ -26724,10 +25591,13 @@ <class name="android/media/midi/MidiInputPort" since="23"> <extends name="android/media/midi/MidiReceiver"/> <implements name="java/io/Closeable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/io/FileDescriptor;I)V" since="29"/> <method name="getPortNumber()I"/> </class> <class name="android/media/midi/MidiManager" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDevices()[Landroid/media/midi/MidiDeviceInfo;"/> <method name="openBluetoothDevice(Landroid/bluetooth/BluetoothDevice;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V"/> <method name="openDevice(Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V"/> @@ -26748,6 +25618,8 @@ <class name="android/media/midi/MidiOutputPort" since="23"> <extends name="android/media/midi/MidiSender"/> <implements name="java/io/Closeable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/io/FileDescriptor;I)V" since="29"/> <method name="getPortNumber()I"/> </class> <class name="android/media/midi/MidiReceiver" since="23"> @@ -26771,6 +25643,7 @@ </class> <class name="android/media/projection/MediaProjection" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createVirtualDisplay(Ljava/lang/String;IIIILandroid/view/Surface;Landroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;)Landroid/hardware/display/VirtualDisplay;"/> <method name="registerCallback(Landroid/media/projection/MediaProjection$Callback;Landroid/os/Handler;)V"/> <method name="stop()V"/> @@ -26783,6 +25656,8 @@ </class> <class name="android/media/projection/MediaProjectionManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="createScreenCaptureIntent()Landroid/content/Intent;"/> <method name="getMediaProjection(ILandroid/content/Intent;)Landroid/media/projection/MediaProjection;"/> </class> @@ -26801,7 +25676,6 @@ <method name="getQueueTitle()Ljava/lang/CharSequence;"/> <method name="getRatingType()I"/> <method name="getSessionActivity()Landroid/app/PendingIntent;"/> - <method name="getSessionInfo()Landroid/os/Bundle;" since="29"/> <method name="getSessionToken()Landroid/media/session/MediaSession$Token;"/> <method name="getTransportControls()Landroid/media/session/MediaController$TransportControls;"/> <method name="registerCallback(Landroid/media/session/MediaController$Callback;)V"/> @@ -26824,18 +25698,19 @@ </class> <class name="android/media/session/MediaController$PlaybackInfo" since="21"> <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/media/AudioAttributes;III)V" since="29"/> <method name="getAudioAttributes()Landroid/media/AudioAttributes;"/> <method name="getCurrentVolume()I"/> <method name="getMaxVolume()I"/> <method name="getPlaybackType()I"/> <method name="getVolumeControl()I"/> - <field name="CREATOR" since="29"/> <field name="PLAYBACK_TYPE_LOCAL"/> <field name="PLAYBACK_TYPE_REMOTE"/> </class> <class name="android/media/session/MediaController$TransportControls" since="21"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/media/session/MediaController;)V"/> <method name="fastForward()V"/> <method name="pause()V"/> <method name="play()V"/> @@ -26850,7 +25725,6 @@ <method name="seekTo(J)V"/> <method name="sendCustomAction(Landroid/media/session/PlaybackState$CustomAction;Landroid/os/Bundle;)V"/> <method name="sendCustomAction(Ljava/lang/String;Landroid/os/Bundle;)V"/> - <method name="setPlaybackSpeed(F)V" since="29"/> <method name="setRating(Landroid/media/Rating;)V"/> <method name="skipToNext()V"/> <method name="skipToPrevious()V"/> @@ -26860,7 +25734,6 @@ <class name="android/media/session/MediaSession" since="21"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/content/Context;Ljava/lang/String;)V"/> - <method name="<init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V" since="29"/> <method name="getController()Landroid/media/session/MediaController;"/> <method name="getCurrentControllerInfo()Landroid/media/session/MediaSessionManager$RemoteUserInfo;" since="28"/> <method name="getSessionToken()Landroid/media/session/MediaSession$Token;"/> @@ -26902,7 +25775,6 @@ <method name="onPrepareFromUri(Landroid/net/Uri;Landroid/os/Bundle;)V" since="24"/> <method name="onRewind()V"/> <method name="onSeekTo(J)V"/> - <method name="onSetPlaybackSpeed(F)V" since="29"/> <method name="onSetRating(Landroid/media/Rating;)V"/> <method name="onSkipToNext()V"/> <method name="onSkipToPrevious()V"/> @@ -26921,29 +25793,23 @@ <class name="android/media/session/MediaSession$Token" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> </class> <class name="android/media/session/MediaSessionManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;)V"/> <method name="addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;Landroid/os/Handler;)V"/> - <method name="addOnSession2TokensChangedListener(Landroid/media/session/MediaSessionManager$OnSession2TokensChangedListener;)V" since="29"/> - <method name="addOnSession2TokensChangedListener(Landroid/media/session/MediaSessionManager$OnSession2TokensChangedListener;Landroid/os/Handler;)V" since="29"/> <method name="getActiveSessions(Landroid/content/ComponentName;)Ljava/util/List;"/> - <method name="getSession2Tokens()Ljava/util/List;" since="29"/> <method name="isTrustedForMediaControl(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)Z" since="28"/> - <method name="notifySession2Created(Landroid/media/Session2Token;)V" since="29"/> <method name="removeOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;)V"/> - <method name="removeOnSession2TokensChangedListener(Landroid/media/session/MediaSessionManager$OnSession2TokensChangedListener;)V" since="29"/> </class> <class name="android/media/session/MediaSessionManager$OnActiveSessionsChangedListener" since="21"> <extends name="java/lang/Object"/> <method name="onActiveSessionsChanged(Ljava/util/List;)V"/> </class> - <class name="android/media/session/MediaSessionManager$OnSession2TokensChangedListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onSession2TokensChanged(Ljava/util/List;)V"/> - </class> <class name="android/media/session/MediaSessionManager$RemoteUserInfo" since="28"> <extends name="java/lang/Object"/> <method name="<init>(Ljava/lang/String;II)V"/> @@ -26954,6 +25820,8 @@ <class name="android/media/session/PlaybackState" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getActions()J"/> <method name="getActiveQueueItemId()J"/> <method name="getBufferedPosition()J"/> @@ -27015,6 +25883,8 @@ <class name="android/media/session/PlaybackState$CustomAction" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getAction()Ljava/lang/String;"/> <method name="getExtras()Landroid/os/Bundle;"/> <method name="getIcon()I"/> @@ -27029,6 +25899,8 @@ </class> <class name="android/media/tv/TvContentRating" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V" since="29"/> <method name="contains(Landroid/media/tv/TvContentRating;)Z" since="24"/> <method name="createRating(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Landroid/media/tv/TvContentRating;"/> <method name="flattenToString()Ljava/lang/String;"/> @@ -27041,6 +25913,7 @@ </class> <class name="android/media/tv/TvContract" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="buildChannelLogoUri(J)Landroid/net/Uri;"/> <method name="buildChannelLogoUri(Landroid/net/Uri;)Landroid/net/Uri;"/> <method name="buildChannelUri(J)Landroid/net/Uri;"/> @@ -27081,6 +25954,7 @@ <class name="android/media/tv/TvContract$Channels" since="21"> <extends name="java/lang/Object"/> <implements name="android/media/tv/TvContract$BaseTvColumns"/> + <method name="<init>()V"/> <method name="getVideoResolution(Ljava/lang/String;)Ljava/lang/String;"/> <field name="COLUMN_APP_LINK_COLOR" since="23"/> <field name="COLUMN_APP_LINK_ICON_URI" since="23"/> @@ -27131,7 +26005,6 @@ <field name="TYPE_DVB_T2"/> <field name="TYPE_ISDB_C"/> <field name="TYPE_ISDB_S"/> - <field name="TYPE_ISDB_S3" since="29"/> <field name="TYPE_ISDB_T"/> <field name="TYPE_ISDB_TB"/> <field name="TYPE_NTSC"/> @@ -27160,11 +26033,13 @@ </class> <class name="android/media/tv/TvContract$Channels$Logo" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> </class> <class name="android/media/tv/TvContract$PreviewPrograms" since="26"> <extends name="java/lang/Object"/> <implements name="android/media/tv/TvContract$BaseTvColumns"/> + <method name="<init>()V"/> <field name="ASPECT_RATIO_16_9"/> <field name="ASPECT_RATIO_1_1"/> <field name="ASPECT_RATIO_2_3"/> @@ -27208,7 +26083,6 @@ <field name="COLUMN_SEARCHABLE"/> <field name="COLUMN_SEASON_DISPLAY_NUMBER"/> <field name="COLUMN_SEASON_TITLE"/> - <field name="COLUMN_SERIES_ID" since="29"/> <field name="COLUMN_SHORT_DESCRIPTION"/> <field name="COLUMN_STARTING_PRICE"/> <field name="COLUMN_THUMBNAIL_ASPECT_RATIO"/> @@ -27249,6 +26123,7 @@ <class name="android/media/tv/TvContract$Programs" since="21"> <extends name="java/lang/Object"/> <implements name="android/media/tv/TvContract$BaseTvColumns"/> + <method name="<init>()V"/> <field name="COLUMN_AUDIO_LANGUAGE"/> <field name="COLUMN_BROADCAST_GENRE"/> <field name="COLUMN_CANONICAL_GENRE"/> @@ -27272,7 +26147,6 @@ <field name="COLUMN_SEASON_DISPLAY_NUMBER" since="24"/> <field name="COLUMN_SEASON_NUMBER" deprecated="24"/> <field name="COLUMN_SEASON_TITLE" since="24"/> - <field name="COLUMN_SERIES_ID" since="29"/> <field name="COLUMN_SHORT_DESCRIPTION"/> <field name="COLUMN_START_TIME_UTC_MILLIS"/> <field name="COLUMN_THUMBNAIL_URI"/> @@ -27289,6 +26163,7 @@ </class> <class name="android/media/tv/TvContract$Programs$Genres" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="decode(Ljava/lang/String;)[Ljava/lang/String;"/> <method name="encode([Ljava/lang/String;)Ljava/lang/String;"/> <method name="isCanonical(Ljava/lang/String;)Z" since="24"/> @@ -27313,6 +26188,7 @@ <class name="android/media/tv/TvContract$RecordedPrograms" since="24"> <extends name="java/lang/Object"/> <implements name="android/media/tv/TvContract$BaseTvColumns"/> + <method name="<init>()V"/> <field name="COLUMN_AUDIO_LANGUAGE"/> <field name="COLUMN_BROADCAST_GENRE"/> <field name="COLUMN_CANONICAL_GENRE"/> @@ -27338,7 +26214,6 @@ <field name="COLUMN_SEARCHABLE"/> <field name="COLUMN_SEASON_DISPLAY_NUMBER"/> <field name="COLUMN_SEASON_TITLE"/> - <field name="COLUMN_SERIES_ID" since="29"/> <field name="COLUMN_SHORT_DESCRIPTION"/> <field name="COLUMN_START_TIME_UTC_MILLIS"/> <field name="COLUMN_THUMBNAIL_URI"/> @@ -27356,6 +26231,7 @@ <class name="android/media/tv/TvContract$WatchNextPrograms" since="26"> <extends name="java/lang/Object"/> <implements name="android/media/tv/TvContract$BaseTvColumns"/> + <method name="<init>()V"/> <field name="ASPECT_RATIO_16_9"/> <field name="ASPECT_RATIO_1_1"/> <field name="ASPECT_RATIO_2_3"/> @@ -27399,7 +26275,6 @@ <field name="COLUMN_SEARCHABLE"/> <field name="COLUMN_SEASON_DISPLAY_NUMBER"/> <field name="COLUMN_SEASON_TITLE"/> - <field name="COLUMN_SERIES_ID" since="29"/> <field name="COLUMN_SHORT_DESCRIPTION"/> <field name="COLUMN_STARTING_PRICE"/> <field name="COLUMN_THUMBNAIL_ASPECT_RATIO"/> @@ -27444,6 +26319,8 @@ <class name="android/media/tv/TvInputInfo" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="canRecord()Z" since="24"/> <method name="createSettingsIntent()Landroid/content/Intent;" deprecated="26"/> <method name="createSetupIntent()Landroid/content/Intent;"/> @@ -27481,6 +26358,7 @@ </class> <class name="android/media/tv/TvInputManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getBlockedRatings()Ljava/util/List;" since="28"/> <method name="getInputState(Ljava/lang/String;)I"/> <method name="getTvInputInfo(Ljava/lang/String;)Landroid/media/tv/TvInputInfo;"/> @@ -27609,6 +26487,8 @@ <class name="android/media/tv/TvTrackInfo" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getAudioChannelCount()I"/> <method name="getAudioSampleRate()I"/> <method name="getDescription()Ljava/lang/CharSequence;" since="23"/> @@ -27621,7 +26501,6 @@ <method name="getVideoHeight()I"/> <method name="getVideoPixelAspectRatio()F" since="23"/> <method name="getVideoWidth()I"/> - <method name="isEncrypted()Z" since="30"/> <field name="CREATOR"/> <field name="TYPE_AUDIO"/> <field name="TYPE_SUBTITLE"/> @@ -27634,7 +26513,6 @@ <method name="setAudioChannelCount(I)Landroid/media/tv/TvTrackInfo$Builder;"/> <method name="setAudioSampleRate(I)Landroid/media/tv/TvTrackInfo$Builder;"/> <method name="setDescription(Ljava/lang/CharSequence;)Landroid/media/tv/TvTrackInfo$Builder;" since="23"/> - <method name="setEncrypted(Z)Landroid/media/tv/TvTrackInfo$Builder;" since="30"/> <method name="setExtra(Landroid/os/Bundle;)Landroid/media/tv/TvTrackInfo$Builder;"/> <method name="setLanguage(Ljava/lang/String;)Landroid/media/tv/TvTrackInfo$Builder;"/> <method name="setVideoActiveFormatDescription(B)Landroid/media/tv/TvTrackInfo$Builder;" since="24"/> @@ -27826,6 +26704,7 @@ </class> <class name="android/mtp/MtpDeviceInfo" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getEventsSupported()[I" since="24"/> <method name="getManufacturer()Ljava/lang/String;"/> <method name="getModel()Ljava/lang/String;"/> @@ -27837,6 +26716,7 @@ </class> <class name="android/mtp/MtpEvent" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDevicePropCode()I"/> <method name="getEventCode()I"/> <method name="getObjectFormatCode()I"/> @@ -27868,6 +26748,7 @@ </class> <class name="android/mtp/MtpObjectInfo" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAssociationDesc()I"/> <method name="getAssociationType()I"/> <method name="getCompressedSize()I"/> @@ -27925,6 +26806,7 @@ </class> <class name="android/mtp/MtpStorageInfo" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDescription()Ljava/lang/String;"/> <method name="getFreeSpace()J"/> <method name="getMaxCapacity()J"/> @@ -27934,28 +26816,29 @@ <class name="android/net/CaptivePortal" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/IBinder;)V" since="29"/> <method name="ignoreNetwork()V"/> <method name="reportCaptivePortalDismissed()V"/> <field name="CREATOR"/> </class> <class name="android/net/ConnectivityManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addDefaultNetworkActiveListener(Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V" since="21"/> <method name="bindProcessToNetwork(Landroid/net/Network;)Z" since="23"/> - <method name="createSocketKeepalive(Landroid/net/Network;Landroid/net/IpSecManager$UdpEncapsulationSocket;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/concurrent/Executor;Landroid/net/SocketKeepalive$Callback;)Landroid/net/SocketKeepalive;" since="29"/> <method name="getActiveNetwork()Landroid/net/Network;" since="23"/> - <method name="getActiveNetworkInfo()Landroid/net/NetworkInfo;" deprecated="29"/> + <method name="getActiveNetworkInfo()Landroid/net/NetworkInfo;"/> <method name="getAllNetworkInfo()[Landroid/net/NetworkInfo;" deprecated="23"/> <method name="getAllNetworks()[Landroid/net/Network;" since="21"/> - <method name="getBackgroundDataSetting()Z" since="3" deprecated="15"/> + <method name="getBackgroundDataSetting()Z" since="3" deprecated="16"/> <method name="getBoundNetworkForProcess()Landroid/net/Network;" since="23"/> - <method name="getConnectionOwnerUid(ILjava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)I" since="29"/> <method name="getDefaultProxy()Landroid/net/ProxyInfo;" since="23"/> <method name="getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;" since="21"/> <method name="getMultipathPreference(Landroid/net/Network;)I" since="26"/> <method name="getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;" since="21"/> <method name="getNetworkInfo(I)Landroid/net/NetworkInfo;" deprecated="23"/> - <method name="getNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo;" since="21" deprecated="29"/> + <method name="getNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo;" since="21"/> <method name="getNetworkPreference()I" deprecated="21"/> <method name="getNetworkWatchlistConfigHash()[B" since="28"/> <method name="getProcessDefaultNetwork()Landroid/net/Network;" since="21" deprecated="23"/> @@ -27992,14 +26875,14 @@ <field name="DEFAULT_NETWORK_PREFERENCE" deprecated="18"/> <field name="EXTRA_CAPTIVE_PORTAL" since="23"/> <field name="EXTRA_CAPTIVE_PORTAL_URL" since="24"/> - <field name="EXTRA_EXTRA_INFO" deprecated="29"/> - <field name="EXTRA_IS_FAILOVER" deprecated="29"/> + <field name="EXTRA_EXTRA_INFO"/> + <field name="EXTRA_IS_FAILOVER"/> <field name="EXTRA_NETWORK" since="22"/> - <field name="EXTRA_NETWORK_INFO" deprecated="15"/> + <field name="EXTRA_NETWORK_INFO" deprecated="16"/> <field name="EXTRA_NETWORK_REQUEST" since="22"/> - <field name="EXTRA_NETWORK_TYPE" since="17" deprecated="29"/> + <field name="EXTRA_NETWORK_TYPE" since="17"/> <field name="EXTRA_NO_CONNECTIVITY"/> - <field name="EXTRA_OTHER_NETWORK_INFO" deprecated="29"/> + <field name="EXTRA_OTHER_NETWORK_INFO"/> <field name="EXTRA_REASON"/> <field name="MULTIPATH_PREFERENCE_HANDOVER" since="26"/> <field name="MULTIPATH_PREFERENCE_PERFORMANCE" since="26"/> @@ -28023,7 +26906,6 @@ <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="onAvailable(Landroid/net/Network;)V"/> - <method name="onBlockedStatusChanged(Landroid/net/Network;Z)V" since="29"/> <method name="onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V"/> <method name="onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V"/> <method name="onLosing(Landroid/net/Network;I)V"/> @@ -28041,7 +26923,7 @@ <method name="getPid()I"/> <method name="getUid()I"/> </class> - <class name="android/net/DhcpInfo" since="1"> + <class name="android/net/DhcpInfo" since="1" deprecated="18"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>()V"/> @@ -28053,40 +26935,11 @@ <field name="netmask"/> <field name="serverAddress"/> </class> - <class name="android/net/DnsResolver" since="29"> - <extends name="java/lang/Object"/> - <method name="getInstance()Landroid/net/DnsResolver;"/> - <method name="query(Landroid/net/Network;Ljava/lang/String;IILjava/util/concurrent/Executor;Landroid/os/CancellationSignal;Landroid/net/DnsResolver$Callback;)V"/> - <method name="query(Landroid/net/Network;Ljava/lang/String;ILjava/util/concurrent/Executor;Landroid/os/CancellationSignal;Landroid/net/DnsResolver$Callback;)V"/> - <method name="rawQuery(Landroid/net/Network;Ljava/lang/String;IIILjava/util/concurrent/Executor;Landroid/os/CancellationSignal;Landroid/net/DnsResolver$Callback;)V"/> - <method name="rawQuery(Landroid/net/Network;[BILjava/util/concurrent/Executor;Landroid/os/CancellationSignal;Landroid/net/DnsResolver$Callback;)V"/> - <field name="CLASS_IN"/> - <field name="ERROR_PARSE"/> - <field name="ERROR_SYSTEM"/> - <field name="FLAG_EMPTY"/> - <field name="FLAG_NO_CACHE_LOOKUP"/> - <field name="FLAG_NO_CACHE_STORE"/> - <field name="FLAG_NO_RETRY"/> - <field name="TYPE_A"/> - <field name="TYPE_AAAA"/> - </class> - <class name="android/net/DnsResolver$Callback" since="29"> - <extends name="java/lang/Object"/> - <method name="onAnswer(Ljava/lang/Object;I)V"/> - <method name="onError(Landroid/net/DnsResolver$DnsException;)V"/> - </class> - <class name="android/net/DnsResolver$DnsException" since="29"> - <extends name="java/lang/Exception"/> - <field name="code"/> - </class> - <class name="android/net/InetAddresses" since="29"> - <extends name="java/lang/Object"/> - <method name="isNumericAddress(Ljava/lang/String;)Z"/> - <method name="parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;"/> - </class> <class name="android/net/IpPrefix" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="contains(Ljava/net/InetAddress;)Z" since="23"/> <method name="getAddress()Ljava/net/InetAddress;"/> <method name="getPrefixLength()I"/> @@ -28112,6 +26965,7 @@ </class> <class name="android/net/IpSecManager" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="allocateSecurityParameterIndex(Ljava/net/InetAddress;)Landroid/net/IpSecManager$SecurityParameterIndex;"/> <method name="allocateSecurityParameterIndex(Ljava/net/InetAddress;I)Landroid/net/IpSecManager$SecurityParameterIndex;"/> <method name="applyTransportModeTransform(Ljava/io/FileDescriptor;ILandroid/net/IpSecTransform;)V"/> @@ -28127,25 +26981,32 @@ </class> <class name="android/net/IpSecManager$ResourceUnavailableException" since="28"> <extends name="android/util/AndroidException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/net/IpSecManager$SecurityParameterIndex" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="getSpi()I"/> </class> <class name="android/net/IpSecManager$SpiUnavailableException" since="28"> <extends name="android/util/AndroidException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;I)V" since="29"/> <method name="getSpi()I"/> </class> <class name="android/net/IpSecManager$UdpEncapsulationSocket" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="getFileDescriptor()Ljava/io/FileDescriptor;"/> <method name="getPort()I"/> </class> <class name="android/net/IpSecTransform" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> </class> <class name="android/net/IpSecTransform$Builder" since="28"> <extends name="java/lang/Object"/> @@ -28159,6 +27020,8 @@ <class name="android/net/LinkAddress" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/net/InterfaceAddress;)V" since="29"/> <method name="getAddress()Ljava/net/InetAddress;"/> <method name="getFlags()I"/> <method name="getPrefixLength()I"/> @@ -28168,25 +27031,15 @@ <class name="android/net/LinkProperties" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="<init>()V" since="29"/> - <method name="addRoute(Landroid/net/RouteInfo;)Z" since="29"/> - <method name="clear()V" since="29"/> + <method name="<init>()V"/> <method name="getDnsServers()Ljava/util/List;"/> <method name="getDomains()Ljava/lang/String;"/> <method name="getHttpProxy()Landroid/net/ProxyInfo;"/> <method name="getInterfaceName()Ljava/lang/String;"/> <method name="getLinkAddresses()Ljava/util/List;"/> - <method name="getMtu()I" since="29"/> <method name="getPrivateDnsServerName()Ljava/lang/String;" since="28"/> <method name="getRoutes()Ljava/util/List;"/> <method name="isPrivateDnsActive()Z" since="28"/> - <method name="isWakeOnLanSupported()Z" since="30"/> - <method name="setDnsServers(Ljava/util/Collection;)V" since="29"/> - <method name="setDomains(Ljava/lang/String;)V" since="29"/> - <method name="setHttpProxy(Landroid/net/ProxyInfo;)V" since="29"/> - <method name="setInterfaceName(Ljava/lang/String;)V" since="29"/> - <method name="setLinkAddresses(Ljava/util/Collection;)V" since="29"/> - <method name="setMtu(I)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/net/LocalServerSocket" since="1"> @@ -28251,6 +27104,8 @@ <class name="android/net/MacAddress" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> <method name="fromBytes([B)Landroid/net/MacAddress;"/> <method name="fromString(Ljava/lang/String;)Landroid/net/MacAddress;"/> <method name="getAddressType()I"/> @@ -28265,6 +27120,7 @@ </class> <class name="android/net/MailTo" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getBody()Ljava/lang/String;"/> <method name="getCc()Ljava/lang/String;"/> <method name="getHeaders()Ljava/util/Map;"/> @@ -28277,6 +27133,8 @@ <class name="android/net/Network" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="bindSocket(Ljava/io/FileDescriptor;)V" since="23"/> <method name="bindSocket(Ljava/net/DatagramSocket;)V" since="22"/> <method name="bindSocket(Ljava/net/Socket;)V"/> @@ -28295,8 +27153,6 @@ <method name="<init>(Landroid/net/NetworkCapabilities;)V"/> <method name="getLinkDownstreamBandwidthKbps()I"/> <method name="getLinkUpstreamBandwidthKbps()I"/> - <method name="getSignalStrength()I" since="29"/> - <method name="getTransportInfo()Landroid/net/TransportInfo;" since="29"/> <method name="hasCapability(I)Z"/> <method name="hasTransport(I)Z"/> <field name="CREATOR"/> @@ -28309,7 +27165,6 @@ <field name="NET_CAPABILITY_IA"/> <field name="NET_CAPABILITY_IMS"/> <field name="NET_CAPABILITY_INTERNET"/> - <field name="NET_CAPABILITY_MCX" since="29"/> <field name="NET_CAPABILITY_MMS"/> <field name="NET_CAPABILITY_NOT_CONGESTED" since="28"/> <field name="NET_CAPABILITY_NOT_METERED"/> @@ -28323,7 +27178,6 @@ <field name="NET_CAPABILITY_VALIDATED" since="23"/> <field name="NET_CAPABILITY_WIFI_P2P"/> <field name="NET_CAPABILITY_XCAP"/> - <field name="SIGNAL_STRENGTH_UNSPECIFIED" since="29"/> <field name="TRANSPORT_BLUETOOTH"/> <field name="TRANSPORT_CELLULAR"/> <field name="TRANSPORT_ETHERNET"/> @@ -28332,57 +27186,61 @@ <field name="TRANSPORT_WIFI"/> <field name="TRANSPORT_WIFI_AWARE" since="26"/> </class> - <class name="android/net/NetworkInfo" since="1" deprecated="29"> + <class name="android/net/NetworkInfo" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" since="3" removed="29"/> <method name="<init>(I)V" removed="3"/> - <method name="getDetailedState()Landroid/net/NetworkInfo$DetailedState;" deprecated="29"/> - <method name="getExtraInfo()Ljava/lang/String;" deprecated="29"/> + <method name="<init>(Landroid/net/NetworkInfo;)V" since="29"/> + <method name="getDetailedState()Landroid/net/NetworkInfo$DetailedState;"/> + <method name="getExtraInfo()Ljava/lang/String;"/> <method name="getReason()Ljava/lang/String;" deprecated="28"/> <method name="getState()Landroid/net/NetworkInfo$State;" deprecated="28"/> - <method name="getSubtype()I" since="3" deprecated="29"/> - <method name="getSubtypeName()Ljava/lang/String;" since="3" deprecated="29"/> + <method name="getSubtype()I" since="3"/> + <method name="getSubtypeName()Ljava/lang/String;" since="3"/> <method name="getType()I" deprecated="28"/> <method name="getTypeName()Ljava/lang/String;" deprecated="28"/> <method name="isAvailable()Z" deprecated="28"/> - <method name="isConnected()Z" deprecated="29"/> + <method name="isConnected()Z"/> <method name="isConnectedOrConnecting()Z" deprecated="28"/> <method name="isFailover()Z" deprecated="28"/> <method name="isRoaming()Z" since="3" deprecated="28"/> - <field name="CREATOR" since="24" deprecated="29"/> + <field name="CREATOR" since="24"/> </class> - <class name="android/net/NetworkInfo$DetailedState" since="1" deprecated="29"> + <class name="android/net/NetworkInfo$DetailedState" since="1"> <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$DetailedState;"/> <method name="values()[Landroid/net/NetworkInfo$DetailedState;"/> - <field name="AUTHENTICATING" deprecated="29"/> - <field name="BLOCKED" since="14" deprecated="29"/> - <field name="CAPTIVE_PORTAL_CHECK" since="17" deprecated="29"/> - <field name="CONNECTED" deprecated="29"/> - <field name="CONNECTING" deprecated="29"/> - <field name="DISCONNECTED" deprecated="29"/> - <field name="DISCONNECTING" deprecated="29"/> - <field name="FAILED" deprecated="29"/> - <field name="IDLE" deprecated="29"/> - <field name="OBTAINING_IPADDR" deprecated="29"/> - <field name="SCANNING" deprecated="29"/> - <field name="SUSPENDED" deprecated="29"/> - <field name="VERIFYING_POOR_LINK" since="16" deprecated="29"/> + <field name="AUTHENTICATING"/> + <field name="BLOCKED" since="14"/> + <field name="CAPTIVE_PORTAL_CHECK" since="17"/> + <field name="CONNECTED"/> + <field name="CONNECTING"/> + <field name="DISCONNECTED"/> + <field name="DISCONNECTING"/> + <field name="FAILED"/> + <field name="IDLE"/> + <field name="OBTAINING_IPADDR"/> + <field name="SCANNING"/> + <field name="SUSPENDED"/> + <field name="VERIFYING_POOR_LINK" since="16"/> </class> - <class name="android/net/NetworkInfo$State" since="1" deprecated="29"> + <class name="android/net/NetworkInfo$State" since="1"> <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$State;"/> <method name="values()[Landroid/net/NetworkInfo$State;"/> - <field name="CONNECTED" deprecated="29"/> - <field name="CONNECTING" deprecated="29"/> - <field name="DISCONNECTED" deprecated="29"/> - <field name="DISCONNECTING" deprecated="29"/> - <field name="SUSPENDED" deprecated="29"/> - <field name="UNKNOWN" deprecated="29"/> + <field name="CONNECTED"/> + <field name="CONNECTING"/> + <field name="DISCONNECTED"/> + <field name="DISCONNECTING"/> + <field name="SUSPENDED"/> + <field name="UNKNOWN"/> </class> <class name="android/net/NetworkRequest" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/NetworkRequest;)V" since="29"/> <method name="hasCapability(I)Z" since="28"/> <method name="hasTransport(I)Z" since="28"/> <field name="CREATOR"/> @@ -28400,25 +27258,29 @@ </class> <class name="android/net/NetworkSpecifier" since="26"> <extends name="java/lang/Object"/> - <method name="<init>()V" since="29"/> + <method name="<init>()V"/> </class> <class name="android/net/ParseException" since="1"> <extends name="java/lang/RuntimeException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <field name="response"/> </class> <class name="android/net/Proxy" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="getDefaultHost()Ljava/lang/String;" deprecated="15"/> - <method name="getDefaultPort()I" deprecated="15"/> - <method name="getHost(Landroid/content/Context;)Ljava/lang/String;" deprecated="15"/> - <method name="getPort(Landroid/content/Context;)I" deprecated="15"/> + <method name="getDefaultHost()Ljava/lang/String;" deprecated="16"/> + <method name="getDefaultPort()I" deprecated="16"/> + <method name="getHost(Landroid/content/Context;)Ljava/lang/String;" deprecated="16"/> + <method name="getPort(Landroid/content/Context;)I" deprecated="16"/> <field name="EXTRA_PROXY_INFO" since="21" deprecated="23"/> <field name="PROXY_CHANGE_ACTION"/> </class> <class name="android/net/ProxyInfo" since="21" deprecated="22"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/Uri;)V" since="29"/> <method name="buildDirectProxy(Ljava/lang/String;I)Landroid/net/ProxyInfo;"/> <method name="buildDirectProxy(Ljava/lang/String;ILjava/util/List;)Landroid/net/ProxyInfo;"/> <method name="buildPacProxy(Landroid/net/Uri;)Landroid/net/ProxyInfo;"/> @@ -28444,57 +27306,34 @@ <class name="android/net/RouteInfo" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/net/InetAddress;)V" since="29"/> <method name="getDestination()Landroid/net/IpPrefix;"/> <method name="getGateway()Ljava/net/InetAddress;"/> <method name="getInterface()Ljava/lang/String;"/> - <method name="hasGateway()Z" since="29"/> <method name="isDefaultRoute()Z"/> <method name="matches(Ljava/net/InetAddress;)Z"/> <field name="CREATOR"/> </class> - <class name="android/net/SSLCertificateSocketFactory" since="1" deprecated="29"> + <class name="android/net/SSLCertificateSocketFactory" since="1"> <extends name="javax/net/ssl/SSLSocketFactory"/> - <method name="<init>(I)V" deprecated="15"/> - <method name="getDefault(I)Ljavax/net/SocketFactory;" deprecated="29"/> - <method name="getDefault(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8" deprecated="29"/> + <method name="<init>(I)V" deprecated="16"/> + <method name="getDefault(I)Ljavax/net/SocketFactory;"/> + <method name="getDefault(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8"/> <method name="getHttpSocketFactory(ILandroid/net/SSLSessionCache;)Lorg/apache/http/conn/ssl/SSLSocketFactory;" since="8" deprecated="22" removed="23"/> - <method name="getInsecure(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8" deprecated="29"/> - <method name="getNpnSelectedProtocol(Ljava/net/Socket;)[B" since="16" deprecated="29"/> - <method name="setHostname(Ljava/net/Socket;Ljava/lang/String;)V" since="17" deprecated="29"/> - <method name="setKeyManagers([Ljavax/net/ssl/KeyManager;)V" since="14" deprecated="29"/> - <method name="setNpnProtocols([[B)V" since="16" deprecated="29"/> - <method name="setTrustManagers([Ljavax/net/ssl/TrustManager;)V" since="14" deprecated="29"/> - <method name="setUseSessionTickets(Ljava/net/Socket;Z)V" since="17" deprecated="29"/> + <method name="getInsecure(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8"/> + <method name="getNpnSelectedProtocol(Ljava/net/Socket;)[B" since="16"/> + <method name="setHostname(Ljava/net/Socket;Ljava/lang/String;)V" since="17"/> + <method name="setKeyManagers([Ljavax/net/ssl/KeyManager;)V" since="14"/> + <method name="setNpnProtocols([[B)V" since="16"/> + <method name="setTrustManagers([Ljavax/net/ssl/TrustManager;)V" since="14"/> + <method name="setUseSessionTickets(Ljava/net/Socket;Z)V" since="17"/> </class> <class name="android/net/SSLSessionCache" since="8"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/content/Context;)V"/> <method name="<init>(Ljava/io/File;)V"/> </class> - <class name="android/net/SocketKeepalive" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable"/> - <method name="start(I)V"/> - <method name="stop()V"/> - <field name="ERROR_HARDWARE_ERROR"/> - <field name="ERROR_INSUFFICIENT_RESOURCES"/> - <field name="ERROR_INVALID_INTERVAL"/> - <field name="ERROR_INVALID_IP_ADDRESS"/> - <field name="ERROR_INVALID_LENGTH"/> - <field name="ERROR_INVALID_NETWORK"/> - <field name="ERROR_INVALID_PORT"/> - <field name="ERROR_INVALID_SOCKET"/> - <field name="ERROR_SOCKET_NOT_IDLE"/> - <field name="ERROR_UNSUPPORTED"/> - </class> - <class name="android/net/SocketKeepalive$Callback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onDataReceived()V"/> - <method name="onError(I)V"/> - <method name="onStarted()V"/> - <method name="onStopped()V"/> - </class> <class name="android/net/TrafficStats" since="8"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -28535,13 +27374,11 @@ <method name="untagSocket(Ljava/net/Socket;)V" since="14"/> <field name="UNSUPPORTED"/> </class> - <class name="android/net/TransportInfo" since="29"> - <extends name="java/lang/Object"/> - </class> <class name="android/net/Uri" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V"/> <method name="buildUpon()Landroid/net/Uri$Builder;"/> <method name="compareTo(Landroid/net/Uri;)I"/> <method name="decode(Ljava/lang/String;)Ljava/lang/String;"/> @@ -28677,8 +27514,6 @@ <class name="android/net/VpnService" since="14"> <extends name="android/app/Service"/> <method name="<init>()V"/> - <method name="isAlwaysOn()Z" since="29"/> - <method name="isLockdownEnabled()Z" since="29"/> <method name="onRevoke()V"/> <method name="prepare(Landroid/content/Context;)Landroid/content/Intent;"/> <method name="protect(I)Z"/> @@ -28705,8 +27540,6 @@ <method name="establish()Landroid/os/ParcelFileDescriptor;"/> <method name="setBlocking(Z)Landroid/net/VpnService$Builder;" since="21"/> <method name="setConfigureIntent(Landroid/app/PendingIntent;)Landroid/net/VpnService$Builder;"/> - <method name="setHttpProxy(Landroid/net/ProxyInfo;)Landroid/net/VpnService$Builder;" since="29"/> - <method name="setMetered(Z)Landroid/net/VpnService$Builder;" since="29"/> <method name="setMtu(I)Landroid/net/VpnService$Builder;"/> <method name="setSession(Ljava/lang/String;)Landroid/net/VpnService$Builder;"/> <method name="setUnderlyingNetworks([Landroid/net/Network;)Landroid/net/VpnService$Builder;" since="22"/> @@ -28714,6 +27547,7 @@ <class name="android/net/http/AndroidHttpClient" since="8" deprecated="22" removed="23"> <extends name="java/lang/Object"/> <implements name="org/apache/http/client/HttpClient"/> + <method name="<init>()V"/> <method name="close()V"/> <method name="disableCurlLogging()V"/> <method name="enableCurlLogging(Ljava/lang/String;I)V"/> @@ -28729,6 +27563,7 @@ <class name="android/net/http/HttpResponseCache" since="14"> <extends name="java/net/ResponseCache"/> <implements name="java/io/Closeable"/> + <method name="<init>()V"/> <method name="delete()V"/> <method name="flush()V"/> <method name="getHitCount()I"/> @@ -28741,14 +27576,14 @@ </class> <class name="android/net/http/SslCertificate" since="1"> <extends name="java/lang/Object"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="15"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;)V" since="8" deprecated="15"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="16"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;)V" since="8" deprecated="16"/> <method name="<init>(Ljava/security/cert/X509Certificate;)V"/> <method name="getIssuedBy()Landroid/net/http/SslCertificate$DName;"/> <method name="getIssuedTo()Landroid/net/http/SslCertificate$DName;"/> - <method name="getValidNotAfter()Ljava/lang/String;" deprecated="15"/> + <method name="getValidNotAfter()Ljava/lang/String;" deprecated="16"/> <method name="getValidNotAfterDate()Ljava/util/Date;" since="8"/> - <method name="getValidNotBefore()Ljava/lang/String;" deprecated="15"/> + <method name="getValidNotBefore()Ljava/lang/String;" deprecated="16"/> <method name="getValidNotBeforeDate()Ljava/util/Date;" since="8"/> <method name="getX509Certificate()Ljava/security/cert/X509Certificate;" since="29"/> <method name="restoreState(Landroid/os/Bundle;)Landroid/net/http/SslCertificate;"/> @@ -28764,9 +27599,9 @@ </class> <class name="android/net/http/SslError" since="8"> <extends name="java/lang/Object"/> - <method name="<init>(ILandroid/net/http/SslCertificate;)V" deprecated="15"/> + <method name="<init>(ILandroid/net/http/SslCertificate;)V" deprecated="16"/> <method name="<init>(ILandroid/net/http/SslCertificate;Ljava/lang/String;)V" since="14"/> - <method name="<init>(ILjava/security/cert/X509Certificate;)V" deprecated="15"/> + <method name="<init>(ILjava/security/cert/X509Certificate;)V" deprecated="16"/> <method name="<init>(ILjava/security/cert/X509Certificate;Ljava/lang/String;)V" since="14"/> <method name="addError(I)Z"/> <method name="getCertificate()Landroid/net/http/SslCertificate;"/> @@ -28777,7 +27612,7 @@ <field name="SSL_EXPIRED"/> <field name="SSL_IDMISMATCH"/> <field name="SSL_INVALID" since="14"/> - <field name="SSL_MAX_ERROR" deprecated="15"/> + <field name="SSL_MAX_ERROR" deprecated="16"/> <field name="SSL_NOTYETVALID"/> <field name="SSL_UNTRUSTED"/> </class> @@ -28790,6 +27625,7 @@ </class> <class name="android/net/nsd/NsdManager" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="discoverServices(Ljava/lang/String;ILandroid/net/nsd/NsdManager$DiscoveryListener;)V"/> <method name="registerService(Landroid/net/nsd/NsdServiceInfo;ILandroid/net/nsd/NsdManager$RegistrationListener;)V"/> <method name="resolveService(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V"/> @@ -28844,6 +27680,8 @@ </class> <class name="android/net/rtp/AudioCodec" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="getCodec(ILjava/lang/String;Ljava/lang/String;)Landroid/net/rtp/AudioCodec;"/> <method name="getCodecs()[Landroid/net/rtp/AudioCodec;"/> <field name="AMR"/> @@ -28880,6 +27718,8 @@ </class> <class name="android/net/rtp/RtpStream" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/net/InetAddress;)V" since="29"/> <method name="associate(Ljava/net/InetAddress;I)V"/> <method name="getLocalAddress()Ljava/net/InetAddress;"/> <method name="getLocalPort()I"/> @@ -28933,6 +27773,7 @@ </class> <class name="android/net/sip/SipErrorCode" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="toString(I)Ljava/lang/String;"/> <field name="CLIENT_ERROR"/> <field name="CROSS_DOMAIN_AUTHENTICATION"/> @@ -28956,6 +27797,8 @@ </class> <class name="android/net/sip/SipManager" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="close(Ljava/lang/String;)V"/> <method name="createSipSession(Landroid/net/sip/SipProfile;Landroid/net/sip/SipSession$Listener;)Landroid/net/sip/SipSession;"/> <method name="getCallId(Landroid/content/Intent;)Ljava/lang/String;"/> @@ -28985,6 +27828,7 @@ <implements name="android/os/Parcelable"/> <implements name="java/io/Serializable"/> <implements name="java/lang/Cloneable"/> + <method name="<init>()V"/> <method name="getAuthUserName()Ljava/lang/String;" since="12"/> <method name="getAutoRegistration()Z"/> <method name="getDisplayName()Ljava/lang/String;"/> @@ -29023,6 +27867,7 @@ </class> <class name="android/net/sip/SipSession" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="answerCall(Ljava/lang/String;I)V"/> <method name="changeCall(Ljava/lang/String;I)V"/> <method name="endCall()V"/> @@ -29055,6 +27900,7 @@ </class> <class name="android/net/sip/SipSession$State" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="toString(I)Ljava/lang/String;"/> <field name="DEREGISTERING"/> <field name="INCOMING_CALL"/> @@ -29068,19 +27914,10 @@ <field name="READY_TO_CALL"/> <field name="REGISTERING"/> </class> - <class name="android/net/ssl/SSLEngines" since="29"> - <extends name="java/lang/Object"/> - <method name="isSupportedEngine(Ljavax/net/ssl/SSLEngine;)Z"/> - <method name="setUseSessionTickets(Ljavax/net/ssl/SSLEngine;Z)V"/> - </class> - <class name="android/net/ssl/SSLSockets" since="29"> - <extends name="java/lang/Object"/> - <method name="isSupportedSocket(Ljavax/net/ssl/SSLSocket;)Z"/> - <method name="setUseSessionTickets(Ljavax/net/ssl/SSLSocket;Z)V"/> - </class> <class name="android/net/wifi/ScanResult" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="is80211mcResponder()Z" since="23"/> <method name="isPasspointNetwork()Z" since="23"/> <field name="BSSID"/> @@ -29120,94 +27957,86 @@ <field name="SCANNING"/> <field name="UNINITIALIZED"/> </class> - <class name="android/net/wifi/WifiConfiguration" since="1" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="<init>()V" deprecated="29"/> - <method name="getHttpProxy()Landroid/net/ProxyInfo;" since="26" deprecated="29"/> - <method name="getRandomizedMacAddress()Landroid/net/MacAddress;" since="29" deprecated="29"/> - <method name="isPasspoint()Z" since="23" deprecated="29"/> - <method name="setHttpProxy(Landroid/net/ProxyInfo;)V" since="26" deprecated="29"/> - <field name="BSSID" deprecated="29"/> - <field name="FQDN" since="21" deprecated="29"/> - <field name="SSID" deprecated="29"/> - <field name="allowedAuthAlgorithms" deprecated="29"/> - <field name="allowedGroupCiphers" deprecated="29"/> - <field name="allowedGroupManagementCiphers" since="29" deprecated="29"/> - <field name="allowedKeyManagement" deprecated="29"/> - <field name="allowedPairwiseCiphers" deprecated="29"/> - <field name="allowedProtocols" deprecated="29"/> - <field name="allowedSuiteBCiphers" since="29" deprecated="29"/> - <field name="enterpriseConfig" since="18" deprecated="29"/> - <field name="hiddenSSID" deprecated="29"/> - <field name="isHomeProviderNetwork" since="26" deprecated="29"/> - <field name="networkId" deprecated="29"/> - <field name="preSharedKey" deprecated="29"/> + <method name="<init>()V"/> + <method name="getHttpProxy()Landroid/net/ProxyInfo;" since="26"/> + <method name="isPasspoint()Z" since="23"/> + <method name="setHttpProxy(Landroid/net/ProxyInfo;)V" since="26"/> + <field name="BSSID"/> + <field name="FQDN" since="21"/> + <field name="SSID"/> + <field name="allowedAuthAlgorithms"/> + <field name="allowedGroupCiphers"/> + <field name="allowedKeyManagement"/> + <field name="allowedPairwiseCiphers"/> + <field name="allowedProtocols"/> + <field name="enterpriseConfig" since="18"/> + <field name="hiddenSSID"/> + <field name="isHomeProviderNetwork" since="26"/> + <field name="networkId"/> + <field name="preSharedKey"/> <field name="priority" deprecated="26"/> - <field name="providerFriendlyName" since="23" deprecated="29"/> - <field name="roamingConsortiumIds" since="23" deprecated="29"/> - <field name="status" deprecated="29"/> + <field name="providerFriendlyName" since="23"/> + <field name="roamingConsortiumIds" since="23"/> + <field name="status"/> <field name="wepKeys" deprecated="28"/> <field name="wepTxKeyIndex" deprecated="28"/> </class> - <class name="android/net/wifi/WifiConfiguration$AuthAlgorithm" since="1" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration$AuthAlgorithm" since="1"> <extends name="java/lang/Object"/> - <field name="LEAP" deprecated="29"/> - <field name="OPEN" deprecated="29"/> + <method name="<init>()V"/> + <field name="LEAP"/> + <field name="OPEN"/> <field name="SHARED" deprecated="28"/> - <field name="strings" deprecated="29"/> - <field name="varName" deprecated="29"/> + <field name="strings"/> + <field name="varName"/> </class> - <class name="android/net/wifi/WifiConfiguration$GroupCipher" since="1" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration$GroupCipher" since="1"> <extends name="java/lang/Object"/> - <field name="CCMP" deprecated="29"/> - <field name="GCMP_256" since="29" deprecated="29"/> - <field name="TKIP" deprecated="29"/> + <method name="<init>()V"/> + <field name="CCMP"/> + <field name="TKIP"/> <field name="WEP104" deprecated="28"/> <field name="WEP40" deprecated="28"/> - <field name="strings" deprecated="29"/> - <field name="varName" deprecated="29"/> + <field name="strings"/> + <field name="varName"/> </class> - <class name="android/net/wifi/WifiConfiguration$GroupMgmtCipher" since="29" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration$KeyMgmt" since="1"> <extends name="java/lang/Object"/> - <field name="BIP_CMAC_256" deprecated="29"/> - <field name="BIP_GMAC_128" deprecated="29"/> - <field name="BIP_GMAC_256" deprecated="29"/> + <method name="<init>()V"/> + <field name="IEEE8021X"/> + <field name="NONE"/> + <field name="WPA_EAP"/> + <field name="WPA_PSK"/> + <field name="strings"/> + <field name="varName"/> </class> - <class name="android/net/wifi/WifiConfiguration$KeyMgmt" since="1" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration$PairwiseCipher" since="1"> <extends name="java/lang/Object"/> - <field name="IEEE8021X" deprecated="29"/> - <field name="NONE" deprecated="29"/> - <field name="OWE" since="29" deprecated="29"/> - <field name="SAE" since="29" deprecated="29"/> - <field name="SUITE_B_192" since="29" deprecated="29"/> - <field name="WPA_EAP" deprecated="29"/> - <field name="WPA_PSK" deprecated="29"/> - <field name="strings" deprecated="29"/> - <field name="varName" deprecated="29"/> - </class> - <class name="android/net/wifi/WifiConfiguration$PairwiseCipher" since="1" deprecated="29"> - <extends name="java/lang/Object"/> - <field name="CCMP" deprecated="29"/> - <field name="GCMP_256" since="29" deprecated="29"/> - <field name="NONE" deprecated="29"/> + <method name="<init>()V"/> + <field name="CCMP"/> + <field name="NONE"/> <field name="TKIP" deprecated="28"/> - <field name="strings" deprecated="29"/> - <field name="varName" deprecated="29"/> + <field name="strings"/> + <field name="varName"/> </class> - <class name="android/net/wifi/WifiConfiguration$Protocol" since="1" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration$Protocol" since="1"> <extends name="java/lang/Object"/> - <field name="RSN" deprecated="29"/> + <method name="<init>()V"/> + <field name="RSN"/> <field name="WPA" deprecated="28"/> - <field name="strings" deprecated="29"/> - <field name="varName" deprecated="29"/> + <field name="strings"/> + <field name="varName"/> </class> - <class name="android/net/wifi/WifiConfiguration$Status" since="1" deprecated="29"> + <class name="android/net/wifi/WifiConfiguration$Status" since="1"> <extends name="java/lang/Object"/> - <field name="CURRENT" deprecated="29"/> - <field name="DISABLED" deprecated="29"/> - <field name="ENABLED" deprecated="29"/> - <field name="strings" deprecated="29"/> + <method name="<init>()V"/> + <field name="CURRENT"/> + <field name="DISABLED"/> + <field name="ENABLED"/> + <field name="strings"/> </class> <class name="android/net/wifi/WifiEnterpriseConfig" since="18"> <extends name="java/lang/Object"/> @@ -29246,6 +28075,7 @@ </class> <class name="android/net/wifi/WifiEnterpriseConfig$Eap" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="AKA" since="21"/> <field name="AKA_PRIME" since="23"/> <field name="NONE"/> @@ -29258,6 +28088,7 @@ </class> <class name="android/net/wifi/WifiEnterpriseConfig$Phase2" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="AKA" since="26"/> <field name="AKA_PRIME" since="26"/> <field name="GTC"/> @@ -29270,6 +28101,7 @@ <class name="android/net/wifi/WifiInfo" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getBSSID()Ljava/lang/String;"/> <method name="getDetailedStateOf(Landroid/net/wifi/SupplicantState;)Landroid/net/NetworkInfo$DetailedState;"/> <method name="getFrequency()I" since="21"/> @@ -29278,71 +28110,58 @@ <method name="getLinkSpeed()I"/> <method name="getMacAddress()Ljava/lang/String;"/> <method name="getNetworkId()I"/> - <method name="getPasspointFqdn()Ljava/lang/String;" since="29"/> - <method name="getPasspointProviderFriendlyName()Ljava/lang/String;" since="29"/> <method name="getRssi()I"/> - <method name="getRxLinkSpeedMbps()I" since="29"/> <method name="getSSID()Ljava/lang/String;"/> <method name="getSupplicantState()Landroid/net/wifi/SupplicantState;"/> - <method name="getTxLinkSpeedMbps()I" since="29"/> <field name="FREQUENCY_UNITS" since="21"/> <field name="LINK_SPEED_UNITS"/> - <field name="LINK_SPEED_UNKNOWN" since="29"/> </class> <class name="android/net/wifi/WifiManager" since="1"> <extends name="java/lang/Object"/> - <method name="addNetwork(Landroid/net/wifi/WifiConfiguration;)I" deprecated="29"/> - <method name="addNetworkSuggestions(Ljava/util/List;)I" since="29"/> + <method name="<init>()V"/> + <method name="addNetwork(Landroid/net/wifi/WifiConfiguration;)I"/> <method name="addOrUpdatePasspointConfiguration(Landroid/net/wifi/hotspot2/PasspointConfiguration;)V" since="26"/> <method name="calculateSignalLevel(II)I"/> <method name="cancelWps(Landroid/net/wifi/WifiManager$WpsCallback;)V" since="21" deprecated="28"/> <method name="compareSignalLevel(II)I"/> <method name="createMulticastLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$MulticastLock;" since="4"/> <method name="createWifiLock(ILjava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;" since="3"/> - <method name="createWifiLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;" deprecated="29"/> - <method name="disableNetwork(I)Z" deprecated="29"/> - <method name="disconnect()Z" deprecated="29"/> - <method name="enableNetwork(IZ)Z" deprecated="29"/> - <method name="getConfiguredNetworks()Ljava/util/List;" deprecated="29"/> + <method name="createWifiLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;"/> + <method name="disableNetwork(I)Z"/> + <method name="disconnect()Z"/> + <method name="enableNetwork(IZ)Z"/> + <method name="getConfiguredNetworks()Ljava/util/List;"/> <method name="getConnectionInfo()Landroid/net/wifi/WifiInfo;"/> - <method name="getDhcpInfo()Landroid/net/DhcpInfo;"/> - <method name="getMaxNumberOfNetworkSuggestionsPerApp()I" since="29"/> - <method name="getPasspointConfigurations()Ljava/util/List;" since="26" deprecated="29"/> + <method name="getDhcpInfo()Landroid/net/DhcpInfo;" deprecated="18"/> + <method name="getPasspointConfigurations()Ljava/util/List;" since="26"/> <method name="getScanResults()Ljava/util/List;"/> <method name="getWifiState()I"/> <method name="is5GHzBandSupported()Z" since="21"/> - <method name="isDeviceToApRttSupported()Z" since="21" deprecated="29"/> - <method name="isEasyConnectSupported()Z" since="29"/> - <method name="isEnhancedOpenSupported()Z" since="29"/> + <method name="isDeviceToApRttSupported()Z" since="21"/> <method name="isEnhancedPowerReportingSupported()Z" since="21"/> <method name="isP2pSupported()Z" since="21"/> <method name="isPreferredNetworkOffloadSupported()Z" since="21"/> - <method name="isScanAlwaysAvailable()Z" since="18" deprecated="29"/> + <method name="isScanAlwaysAvailable()Z" since="18"/> <method name="isTdlsSupported()Z" since="21"/> <method name="isWifiEnabled()Z"/> - <method name="isWpa3SaeSupported()Z" since="29"/> - <method name="isWpa3SuiteBSupported()Z" since="29"/> <method name="pingSupplicant()Z" deprecated="26"/> - <method name="reassociate()Z" deprecated="29"/> - <method name="reconnect()Z" deprecated="29"/> - <method name="removeNetwork(I)Z" deprecated="29"/> - <method name="removeNetworkSuggestions(Ljava/util/List;)I" since="29"/> - <method name="removePasspointConfiguration(Ljava/lang/String;)V" since="26" deprecated="29"/> + <method name="reassociate()Z"/> + <method name="reconnect()Z"/> + <method name="removeNetwork(I)Z"/> + <method name="removePasspointConfiguration(Ljava/lang/String;)V" since="26"/> <method name="saveConfiguration()Z" deprecated="26"/> <method name="setTdlsEnabled(Ljava/net/InetAddress;Z)V" since="19"/> <method name="setTdlsEnabledWithMacAddress(Ljava/lang/String;Z)V" since="19"/> - <method name="setWifiEnabled(Z)Z" deprecated="29"/> + <method name="setWifiEnabled(Z)Z"/> <method name="startLocalOnlyHotspot(Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallback;Landroid/os/Handler;)V" since="26"/> <method name="startScan()Z" deprecated="28"/> <method name="startWps(Landroid/net/wifi/WpsInfo;Landroid/net/wifi/WifiManager$WpsCallback;)V" since="21" deprecated="28"/> - <method name="updateNetwork(Landroid/net/wifi/WifiConfiguration;)I" deprecated="29"/> + <method name="updateNetwork(Landroid/net/wifi/WifiConfiguration;)I"/> <field name="ACTION_PICK_WIFI_NETWORK"/> <field name="ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE" since="18"/> - <field name="ACTION_WIFI_NETWORK_SUGGESTION_POST_CONNECTION" since="29"/> <field name="ERROR_AUTHENTICATING" deprecated="28"/> <field name="EXTRA_BSSID" deprecated="28"/> <field name="EXTRA_NETWORK_INFO"/> - <field name="EXTRA_NETWORK_SUGGESTION" since="29"/> <field name="EXTRA_NEW_RSSI"/> <field name="EXTRA_NEW_STATE" deprecated="28"/> <field name="EXTRA_PREVIOUS_WIFI_STATE"/> @@ -29355,18 +28174,11 @@ <field name="NETWORK_STATE_CHANGED_ACTION"/> <field name="RSSI_CHANGED_ACTION"/> <field name="SCAN_RESULTS_AVAILABLE_ACTION"/> - <field name="STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_DUPLICATE" since="29"/> - <field name="STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_EXCEEDS_MAX_PER_APP" since="29"/> - <field name="STATUS_NETWORK_SUGGESTIONS_ERROR_APP_DISALLOWED" since="29"/> - <field name="STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL" since="29"/> - <field name="STATUS_NETWORK_SUGGESTIONS_ERROR_REMOVE_INVALID" since="29"/> - <field name="STATUS_NETWORK_SUGGESTIONS_SUCCESS" since="29"/> <field name="SUPPLICANT_CONNECTION_CHANGE_ACTION" deprecated="28"/> <field name="SUPPLICANT_STATE_CHANGED_ACTION" deprecated="28"/> - <field name="WIFI_MODE_FULL" since="3" deprecated="29"/> + <field name="WIFI_MODE_FULL" since="3"/> <field name="WIFI_MODE_FULL_HIGH_PERF" since="12"/> - <field name="WIFI_MODE_FULL_LOW_LATENCY" since="29"/> - <field name="WIFI_MODE_SCAN_ONLY" since="3" deprecated="29"/> + <field name="WIFI_MODE_SCAN_ONLY" since="3"/> <field name="WIFI_STATE_CHANGED_ACTION"/> <field name="WIFI_STATE_DISABLED"/> <field name="WIFI_STATE_DISABLING"/> @@ -29393,10 +28205,14 @@ <class name="android/net/wifi/WifiManager$LocalOnlyHotspotReservation" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>(Landroid/net/wifi/WifiManager;)V" removed="29"/> + <method name="<init>(Landroid/net/wifi/WifiManager;Landroid/net/wifi/WifiConfiguration;)V" since="29"/> <method name="getWifiConfiguration()Landroid/net/wifi/WifiConfiguration;"/> </class> <class name="android/net/wifi/WifiManager$MulticastLock" since="4"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/net/wifi/WifiManager;)V" removed="29"/> + <method name="<init>(Landroid/net/wifi/WifiManager;Ljava/lang/String;)V" since="29"/> <method name="acquire()V"/> <method name="isHeld()Z"/> <method name="release()V"/> @@ -29404,6 +28220,8 @@ </class> <class name="android/net/wifi/WifiManager$WifiLock" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/net/wifi/WifiManager;)V" removed="29"/> + <method name="<init>(Landroid/net/wifi/WifiManager;ILjava/lang/String;)V" since="29"/> <method name="acquire()V"/> <method name="isHeld()Z"/> <method name="release()V"/> @@ -29412,53 +28230,11 @@ </class> <class name="android/net/wifi/WifiManager$WpsCallback" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> <method name="onFailed(I)V" deprecated="28"/> <method name="onStarted(Ljava/lang/String;)V" deprecated="28"/> <method name="onSucceeded()V" deprecated="28"/> </class> - <class name="android/net/wifi/WifiNetworkSpecifier" since="29"> - <extends name="android/net/NetworkSpecifier"/> - <implements name="android/os/Parcelable"/> - <field name="CREATOR"/> - </class> - <class name="android/net/wifi/WifiNetworkSpecifier$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/net/wifi/WifiNetworkSpecifier;"/> - <method name="setBssid(Landroid/net/MacAddress;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setBssidPattern(Landroid/net/MacAddress;Landroid/net/MacAddress;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setIsEnhancedOpen(Z)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setIsHiddenSsid(Z)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setSsid(Ljava/lang/String;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setSsidPattern(Landroid/os/PatternMatcher;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setWpa2EnterpriseConfig(Landroid/net/wifi/WifiEnterpriseConfig;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setWpa2Passphrase(Ljava/lang/String;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setWpa3EnterpriseConfig(Landroid/net/wifi/WifiEnterpriseConfig;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - <method name="setWpa3Passphrase(Ljava/lang/String;)Landroid/net/wifi/WifiNetworkSpecifier$Builder;"/> - </class> - <class name="android/net/wifi/WifiNetworkSuggestion" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <field name="CREATOR"/> - </class> - <class name="android/net/wifi/WifiNetworkSuggestion$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/net/wifi/WifiNetworkSuggestion;"/> - <method name="setBssid(Landroid/net/MacAddress;)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setIsAppInteractionRequired(Z)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setIsEnhancedOpen(Z)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setIsHiddenSsid(Z)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setIsMetered(Z)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setIsUserInteractionRequired(Z)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setPriority(I)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setSsid(Ljava/lang/String;)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setWpa2EnterpriseConfig(Landroid/net/wifi/WifiEnterpriseConfig;)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setWpa2Passphrase(Ljava/lang/String;)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setWpa3EnterpriseConfig(Landroid/net/wifi/WifiEnterpriseConfig;)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - <method name="setWpa3Passphrase(Ljava/lang/String;)Landroid/net/wifi/WifiNetworkSuggestion$Builder;"/> - </class> <class name="android/net/wifi/WpsInfo" since="14" deprecated="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -29483,6 +28259,8 @@ <class name="android/net/wifi/aware/Characteristics" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Bundle;)V" since="29"/> <method name="getMaxMatchFilterLength()I"/> <method name="getMaxServiceNameLength()I"/> <method name="getMaxServiceSpecificInfoLength()I"/> @@ -29491,8 +28269,10 @@ <class name="android/net/wifi/aware/DiscoverySession" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> - <method name="createNetworkSpecifierOpen(Landroid/net/wifi/aware/PeerHandle;)Landroid/net/NetworkSpecifier;" deprecated="29"/> - <method name="createNetworkSpecifierPassphrase(Landroid/net/wifi/aware/PeerHandle;Ljava/lang/String;)Landroid/net/NetworkSpecifier;" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/wifi/aware/WifiAwareManager;II)V" since="29"/> + <method name="createNetworkSpecifierOpen(Landroid/net/wifi/aware/PeerHandle;)Landroid/net/NetworkSpecifier;"/> + <method name="createNetworkSpecifierPassphrase(Landroid/net/wifi/aware/PeerHandle;Ljava/lang/String;)Landroid/net/NetworkSpecifier;"/> <method name="sendMessage(Landroid/net/wifi/aware/PeerHandle;I[B)V"/> </class> <class name="android/net/wifi/aware/DiscoverySessionCallback" since="26"> @@ -29514,18 +28294,16 @@ <method name="<init>()V"/> <method name="onIdentityChanged([B)V"/> </class> - <class name="android/net/wifi/aware/ParcelablePeerHandle" since="29"> - <extends name="android/net/wifi/aware/PeerHandle"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Landroid/net/wifi/aware/PeerHandle;)V"/> - <field name="CREATOR"/> - </class> <class name="android/net/wifi/aware/PeerHandle" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> </class> <class name="android/net/wifi/aware/PublishConfig" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([B[B[BIIZZ)V" since="29"/> <field name="CREATOR"/> <field name="PUBLISH_TYPE_SOLICITED"/> <field name="PUBLISH_TYPE_UNSOLICITED"/> @@ -29544,11 +28322,15 @@ </class> <class name="android/net/wifi/aware/PublishDiscoverySession" since="26"> <extends name="android/net/wifi/aware/DiscoverySession"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/wifi/aware/WifiAwareManager;II)V" since="29"/> <method name="updatePublish(Landroid/net/wifi/aware/PublishConfig;)V"/> </class> <class name="android/net/wifi/aware/SubscribeConfig" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([B[B[BIIZZIZI)V" since="29"/> <field name="CREATOR"/> <field name="SUBSCRIBE_TYPE_ACTIVE"/> <field name="SUBSCRIBE_TYPE_PASSIVE"/> @@ -29568,10 +28350,13 @@ </class> <class name="android/net/wifi/aware/SubscribeDiscoverySession" since="26"> <extends name="android/net/wifi/aware/DiscoverySession"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/wifi/aware/WifiAwareManager;II)V" since="29"/> <method name="updateSubscribe(Landroid/net/wifi/aware/SubscribeConfig;)V"/> </class> <class name="android/net/wifi/aware/WifiAwareManager" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="attach(Landroid/net/wifi/aware/AttachCallback;Landroid/net/wifi/aware/IdentityChangedListener;Landroid/os/Handler;)V"/> <method name="attach(Landroid/net/wifi/aware/AttachCallback;Landroid/os/Handler;)V"/> <method name="getCharacteristics()Landroid/net/wifi/aware/Characteristics;"/> @@ -29580,31 +28365,11 @@ <field name="WIFI_AWARE_DATA_PATH_ROLE_INITIATOR"/> <field name="WIFI_AWARE_DATA_PATH_ROLE_RESPONDER"/> </class> - <class name="android/net/wifi/aware/WifiAwareNetworkInfo" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/net/TransportInfo"/> - <implements name="android/os/Parcelable"/> - <method name="getPeerIpv6Addr()Ljava/net/Inet6Address;"/> - <method name="getPort()I"/> - <method name="getTransportProtocol()I"/> - <field name="CREATOR"/> - </class> - <class name="android/net/wifi/aware/WifiAwareNetworkSpecifier" since="29"> - <extends name="android/net/NetworkSpecifier"/> - <implements name="android/os/Parcelable"/> - <field name="CREATOR"/> - </class> - <class name="android/net/wifi/aware/WifiAwareNetworkSpecifier$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/net/wifi/aware/DiscoverySession;Landroid/net/wifi/aware/PeerHandle;)V"/> - <method name="build()Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;"/> - <method name="setPort(I)Landroid/net/wifi/aware/WifiAwareNetworkSpecifier$Builder;"/> - <method name="setPskPassphrase(Ljava/lang/String;)Landroid/net/wifi/aware/WifiAwareNetworkSpecifier$Builder;"/> - <method name="setTransportProtocol(I)Landroid/net/wifi/aware/WifiAwareNetworkSpecifier$Builder;"/> - </class> <class name="android/net/wifi/aware/WifiAwareSession" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/wifi/aware/WifiAwareManager;Landroid/os/Binder;I)V" since="29"/> <method name="createNetworkSpecifierOpen(I[B)Landroid/net/NetworkSpecifier;"/> <method name="createNetworkSpecifierPassphrase(I[BLjava/lang/String;)Landroid/net/NetworkSpecifier;"/> <method name="publish(Landroid/net/wifi/aware/PublishConfig;Landroid/net/wifi/aware/DiscoverySessionCallback;Landroid/os/Handler;)V"/> @@ -29612,6 +28377,7 @@ </class> <class name="android/net/wifi/hotspot2/ConfigParser" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="parsePasspointConfig(Ljava/lang/String;[B)Landroid/net/wifi/hotspot2/PasspointConfiguration;"/> </class> <class name="android/net/wifi/hotspot2/PasspointConfiguration" since="26"> @@ -29627,6 +28393,7 @@ </class> <class name="android/net/wifi/hotspot2/omadm/PpsMoParser" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="parseMoText(Ljava/lang/String;)Landroid/net/wifi/hotspot2/PasspointConfiguration;"/> </class> <class name="android/net/wifi/hotspot2/pps/Credential" since="26"> @@ -29706,24 +28473,10 @@ <method name="<init>()V"/> <method name="<init>(Landroid/net/wifi/p2p/WifiP2pConfig;)V"/> <field name="CREATOR"/> - <field name="GROUP_OWNER_BAND_2GHZ" since="29"/> - <field name="GROUP_OWNER_BAND_5GHZ" since="29"/> - <field name="GROUP_OWNER_BAND_AUTO" since="29"/> <field name="deviceAddress"/> <field name="groupOwnerIntent"/> <field name="wps"/> </class> - <class name="android/net/wifi/p2p/WifiP2pConfig$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/net/wifi/p2p/WifiP2pConfig;"/> - <method name="enablePersistentMode(Z)Landroid/net/wifi/p2p/WifiP2pConfig$Builder;"/> - <method name="setDeviceAddress(Landroid/net/MacAddress;)Landroid/net/wifi/p2p/WifiP2pConfig$Builder;"/> - <method name="setGroupOperatingBand(I)Landroid/net/wifi/p2p/WifiP2pConfig$Builder;"/> - <method name="setGroupOperatingFrequency(I)Landroid/net/wifi/p2p/WifiP2pConfig$Builder;"/> - <method name="setNetworkName(Ljava/lang/String;)Landroid/net/wifi/p2p/WifiP2pConfig$Builder;"/> - <method name="setPassphrase(Ljava/lang/String;)Landroid/net/wifi/p2p/WifiP2pConfig$Builder;"/> - </class> <class name="android/net/wifi/p2p/WifiP2pDevice" since="14"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -29761,7 +28514,6 @@ <method name="<init>()V"/> <method name="<init>(Landroid/net/wifi/p2p/WifiP2pGroup;)V"/> <method name="getClientList()Ljava/util/Collection;"/> - <method name="getFrequency()I" since="29"/> <method name="getInterface()Ljava/lang/String;"/> <method name="getNetworkName()Ljava/lang/String;"/> <method name="getOwner()Landroid/net/wifi/p2p/WifiP2pDevice;"/> @@ -29781,13 +28533,13 @@ </class> <class name="android/net/wifi/p2p/WifiP2pManager" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addLocalService(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> <method name="addServiceRequest(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> <method name="cancelConnect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V"/> <method name="clearLocalServices(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> <method name="clearServiceRequests(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> <method name="connect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pConfig;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V"/> - <method name="createGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pConfig;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="29"/> <method name="createGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V"/> <method name="discoverPeers(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V"/> <method name="discoverServices(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> @@ -29796,11 +28548,7 @@ <method name="removeLocalService(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> <method name="removeServiceRequest(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16"/> <method name="requestConnectionInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ConnectionInfoListener;)V"/> - <method name="requestDeviceInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener;)V" since="29"/> - <method name="requestDiscoveryState(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$DiscoveryStateListener;)V" since="29"/> <method name="requestGroupInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$GroupInfoListener;)V"/> - <method name="requestNetworkInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$NetworkInfoListener;)V" since="29"/> - <method name="requestP2pState(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$P2pStateListener;)V" since="29"/> <method name="requestPeers(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$PeerListListener;)V"/> <method name="setDnsSdResponseListeners(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$DnsSdServiceResponseListener;Landroid/net/wifi/p2p/WifiP2pManager$DnsSdTxtRecordListener;)V" since="16"/> <method name="setServiceResponseListener(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ServiceResponseListener;)V" since="16"/> @@ -29835,6 +28583,8 @@ <class name="android/net/wifi/p2p/WifiP2pManager$Channel" since="14"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable" since="27"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/os/Looper;Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;Landroid/os/Binder;Landroid/net/wifi/p2p/WifiP2pManager;)V" since="29"/> </class> <class name="android/net/wifi/p2p/WifiP2pManager$ChannelListener" since="14"> <extends name="java/lang/Object"/> @@ -29844,14 +28594,6 @@ <extends name="java/lang/Object"/> <method name="onConnectionInfoAvailable(Landroid/net/wifi/p2p/WifiP2pInfo;)V"/> </class> - <class name="android/net/wifi/p2p/WifiP2pManager$DeviceInfoListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onDeviceInfoAvailable(Landroid/net/wifi/p2p/WifiP2pDevice;)V"/> - </class> - <class name="android/net/wifi/p2p/WifiP2pManager$DiscoveryStateListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onDiscoveryStateAvailable(I)V"/> - </class> <class name="android/net/wifi/p2p/WifiP2pManager$DnsSdServiceResponseListener" since="16"> <extends name="java/lang/Object"/> <method name="onDnsSdServiceAvailable(Ljava/lang/String;Ljava/lang/String;Landroid/net/wifi/p2p/WifiP2pDevice;)V"/> @@ -29864,14 +28606,6 @@ <extends name="java/lang/Object"/> <method name="onGroupInfoAvailable(Landroid/net/wifi/p2p/WifiP2pGroup;)V"/> </class> - <class name="android/net/wifi/p2p/WifiP2pManager$NetworkInfoListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onNetworkInfoAvailable(Landroid/net/NetworkInfo;)V"/> - </class> - <class name="android/net/wifi/p2p/WifiP2pManager$P2pStateListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onP2pStateAvailable(I)V"/> - </class> <class name="android/net/wifi/p2p/WifiP2pManager$PeerListListener" since="14"> <extends name="java/lang/Object"/> <method name="onPeersAvailable(Landroid/net/wifi/p2p/WifiP2pDeviceList;)V"/> @@ -29886,10 +28620,13 @@ </class> <class name="android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo" since="16"> <extends name="android/net/wifi/p2p/nsd/WifiP2pServiceInfo"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/List;)V" since="29"/> <method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;"/> </class> <class name="android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest" since="16"> <extends name="android/net/wifi/p2p/nsd/WifiP2pServiceRequest"/> + <method name="<init>()V"/> <method name="newInstance()Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;"/> <method name="newInstance(Ljava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;"/> <method name="newInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;"/> @@ -29897,6 +28634,8 @@ <class name="android/net/wifi/p2p/nsd/WifiP2pServiceInfo" since="16"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/List;)V" since="29"/> <field name="SERVICE_TYPE_ALL"/> <field name="SERVICE_TYPE_BONJOUR"/> <field name="SERVICE_TYPE_UPNP"/> @@ -29905,56 +28644,27 @@ <class name="android/net/wifi/p2p/nsd/WifiP2pServiceRequest" since="16"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;)V" since="29"/> <method name="newInstance(I)Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;"/> <method name="newInstance(ILjava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;"/> </class> <class name="android/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo" since="16"> <extends name="android/net/wifi/p2p/nsd/WifiP2pServiceInfo"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/List;)V" since="29"/> <method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo;"/> </class> <class name="android/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest" since="16"> <extends name="android/net/wifi/p2p/nsd/WifiP2pServiceRequest"/> + <method name="<init>()V"/> <method name="newInstance()Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest;"/> <method name="newInstance(Ljava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest;"/> </class> - <class name="android/net/wifi/rtt/CivicLocationKeys" since="29"> - <extends name="java/lang/Object"/> - <field name="ADDITIONAL_CODE"/> - <field name="APT"/> - <field name="BOROUGH"/> - <field name="BRANCH_ROAD_NAME"/> - <field name="BUILDING"/> - <field name="CITY"/> - <field name="COUNTY"/> - <field name="DESK"/> - <field name="FLOOR"/> - <field name="GROUP_OF_STREETS"/> - <field name="HNO"/> - <field name="HNS"/> - <field name="LANGUAGE"/> - <field name="LMK"/> - <field name="LOC"/> - <field name="NAM"/> - <field name="NEIGHBORHOOD"/> - <field name="PCN"/> - <field name="POD"/> - <field name="POSTAL_CODE"/> - <field name="PO_BOX"/> - <field name="PRD"/> - <field name="PRIMARY_ROAD_NAME"/> - <field name="ROAD_SECTION"/> - <field name="ROOM"/> - <field name="SCRIPT"/> - <field name="STATE"/> - <field name="STREET_NAME_POST_MODIFIER"/> - <field name="STREET_NAME_PRE_MODIFIER"/> - <field name="STS"/> - <field name="SUBBRANCH_ROAD_NAME"/> - <field name="TYPE_OF_PLACE"/> - </class> <class name="android/net/wifi/rtt/RangingRequest" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getMaxPeers()I"/> <field name="CREATOR"/> </class> @@ -29970,6 +28680,8 @@ <class name="android/net/wifi/rtt/RangingResult" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/net/MacAddress;IIIII[B[BJ)V" since="29"/> <method name="getDistanceMm()I"/> <method name="getDistanceStdDevMm()I"/> <method name="getMacAddress()Landroid/net/MacAddress;"/> @@ -29979,7 +28691,6 @@ <method name="getRangingTimestampMillis()J"/> <method name="getRssi()I"/> <method name="getStatus()I"/> - <method name="getUnverifiedResponderLocation()Landroid/net/wifi/rtt/ResponderLocation;" since="29"/> <field name="CREATOR"/> <field name="STATUS_FAIL"/> <field name="STATUS_RESPONDER_DOES_NOT_SUPPORT_IEEE80211MC"/> @@ -29993,47 +28704,9 @@ <field name="STATUS_CODE_FAIL"/> <field name="STATUS_CODE_FAIL_RTT_NOT_AVAILABLE"/> </class> - <class name="android/net/wifi/rtt/ResponderLocation" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getAltitude()D"/> - <method name="getAltitudeType()I"/> - <method name="getAltitudeUncertainty()D"/> - <method name="getColocatedBssids()Ljava/util/List;"/> - <method name="getDatum()I"/> - <method name="getExpectedToMove()I"/> - <method name="getFloorNumber()D"/> - <method name="getHeightAboveFloorMeters()D"/> - <method name="getHeightAboveFloorUncertaintyMeters()D"/> - <method name="getLatitude()D"/> - <method name="getLatitudeUncertainty()D"/> - <method name="getLciVersion()I"/> - <method name="getLongitude()D"/> - <method name="getLongitudeUncertainty()D"/> - <method name="getMapImageMimeType()Ljava/lang/String;"/> - <method name="getMapImageUri()Landroid/net/Uri;"/> - <method name="getRegisteredLocationAgreementIndication()Z"/> - <method name="isLciSubelementValid()Z"/> - <method name="isZaxisSubelementValid()Z"/> - <method name="toCivicLocationAddress()Landroid/location/Address;"/> - <method name="toCivicLocationSparseArray()Landroid/util/SparseArray;"/> - <method name="toLocation()Landroid/location/Location;"/> - <field name="ALTITUDE_FLOORS"/> - <field name="ALTITUDE_METERS"/> - <field name="ALTITUDE_UNDEFINED"/> - <field name="CREATOR"/> - <field name="DATUM_NAD83_MLLW"/> - <field name="DATUM_NAD83_NAV88"/> - <field name="DATUM_UNDEFINED"/> - <field name="DATUM_WGS84"/> - <field name="LCI_VERSION_1"/> - <field name="LOCATION_FIXED"/> - <field name="LOCATION_MOVEMENT_UNKNOWN"/> - <field name="LOCATION_RESERVED"/> - <field name="LOCATION_VARIABLE"/> - </class> <class name="android/net/wifi/rtt/WifiRttManager" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="isAvailable()Z"/> <method name="startRanging(Landroid/net/wifi/rtt/RangingRequest;Ljava/util/concurrent/Executor;Landroid/net/wifi/rtt/RangingResultCallback;)V"/> <field name="ACTION_WIFI_RTT_STATE_CHANGED"/> @@ -30091,25 +28764,25 @@ </class> <class name="android/nfc/NfcAdapter" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="disableForegroundDispatch(Landroid/app/Activity;)V" since="10"/> - <method name="disableForegroundNdefPush(Landroid/app/Activity;)V" since="10" deprecated="15"/> + <method name="disableForegroundNdefPush(Landroid/app/Activity;)V" since="10" deprecated="16"/> <method name="disableReaderMode(Landroid/app/Activity;)V" since="19"/> <method name="enableForegroundDispatch(Landroid/app/Activity;Landroid/app/PendingIntent;[Landroid/content/IntentFilter;[[Ljava/lang/String;)V" since="10"/> - <method name="enableForegroundNdefPush(Landroid/app/Activity;Landroid/nfc/NdefMessage;)V" since="10" deprecated="15"/> + <method name="enableForegroundNdefPush(Landroid/app/Activity;Landroid/nfc/NdefMessage;)V" since="10" deprecated="16"/> <method name="enableReaderMode(Landroid/app/Activity;Landroid/nfc/NfcAdapter$ReaderCallback;ILandroid/os/Bundle;)V" since="19"/> - <method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;" deprecated="15" removed="16"/> + <method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;" removed="16"/> <method name="getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;" since="10"/> <method name="ignore(Landroid/nfc/Tag;ILandroid/nfc/NfcAdapter$OnTagRemovedListener;Landroid/os/Handler;)Z" since="24"/> - <method name="invokeBeam(Landroid/app/Activity;)Z" since="21" deprecated="29"/> + <method name="invokeBeam(Landroid/app/Activity;)Z" since="21"/> <method name="isEnabled()Z"/> - <method name="isNdefPushEnabled()Z" since="16" deprecated="29"/> - <method name="isSecureNfcEnabled()Z" since="29"/> - <method name="isSecureNfcSupported()Z" since="29"/> - <method name="setBeamPushUris([Landroid/net/Uri;Landroid/app/Activity;)V" since="16" deprecated="29"/> - <method name="setBeamPushUrisCallback(Landroid/nfc/NfcAdapter$CreateBeamUrisCallback;Landroid/app/Activity;)V" since="16" deprecated="29"/> - <method name="setNdefPushMessage(Landroid/nfc/NdefMessage;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" deprecated="29"/> - <method name="setNdefPushMessageCallback(Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" deprecated="29"/> - <method name="setOnNdefPushCompleteCallback(Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" deprecated="29"/> + <method name="isNdefPushEnabled()Z" since="16"/> + <method name="setBeamPushUris([Landroid/net/Uri;Landroid/app/Activity;)V" since="16"/> + <method name="setBeamPushUrisCallback(Landroid/nfc/NfcAdapter$CreateBeamUrisCallback;Landroid/app/Activity;)V" since="16"/> + <method name="setNdefPushMessage(Landroid/nfc/NdefMessage;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14"/> + <method name="setNdefPushMessageCallback(Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14"/> + <method name="setOnNdefPushCompleteCallback(Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14"/> <field name="ACTION_ADAPTER_STATE_CHANGED" since="18"/> <field name="ACTION_NDEF_DISCOVERED" since="10"/> <field name="ACTION_TAG_DISCOVERED"/> @@ -30135,17 +28808,17 @@ <field name="STATE_TURNING_OFF" since="18"/> <field name="STATE_TURNING_ON" since="18"/> </class> - <class name="android/nfc/NfcAdapter$CreateBeamUrisCallback" since="16" deprecated="29"> + <class name="android/nfc/NfcAdapter$CreateBeamUrisCallback" since="16"> <extends name="java/lang/Object"/> - <method name="createBeamUris(Landroid/nfc/NfcEvent;)[Landroid/net/Uri;" deprecated="29"/> + <method name="createBeamUris(Landroid/nfc/NfcEvent;)[Landroid/net/Uri;"/> </class> - <class name="android/nfc/NfcAdapter$CreateNdefMessageCallback" since="14" deprecated="29"> + <class name="android/nfc/NfcAdapter$CreateNdefMessageCallback" since="14"> <extends name="java/lang/Object"/> - <method name="createNdefMessage(Landroid/nfc/NfcEvent;)Landroid/nfc/NdefMessage;" deprecated="29"/> + <method name="createNdefMessage(Landroid/nfc/NfcEvent;)Landroid/nfc/NdefMessage;"/> </class> - <class name="android/nfc/NfcAdapter$OnNdefPushCompleteCallback" since="14" deprecated="29"> + <class name="android/nfc/NfcAdapter$OnNdefPushCompleteCallback" since="14"> <extends name="java/lang/Object"/> - <method name="onNdefPushComplete(Landroid/nfc/NfcEvent;)V" deprecated="29"/> + <method name="onNdefPushComplete(Landroid/nfc/NfcEvent;)V"/> </class> <class name="android/nfc/NfcAdapter$OnTagRemovedListener" since="24"> <extends name="java/lang/Object"/> @@ -30157,17 +28830,22 @@ </class> <class name="android/nfc/NfcEvent" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/NfcAdapter;B)V" since="29"/> <field name="nfcAdapter"/> <field name="peerLlcpMajorVersion" since="23"/> <field name="peerLlcpMinorVersion" since="23"/> </class> <class name="android/nfc/NfcManager" since="10"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;"/> </class> <class name="android/nfc/Tag" since="10"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getId()[B"/> <method name="getTechList()[Ljava/lang/String;"/> <field name="CREATOR"/> @@ -30179,6 +28857,7 @@ </class> <class name="android/nfc/cardemulation/CardEmulation" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="categoryAllowsForegroundPreference(Ljava/lang/String;)Z" since="21"/> <method name="getAidsForService(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;" since="21"/> <method name="getInstance(Landroid/nfc/NfcAdapter;)Landroid/nfc/cardemulation/CardEmulation;"/> @@ -30187,10 +28866,8 @@ <method name="isDefaultServiceForCategory(Landroid/content/ComponentName;Ljava/lang/String;)Z"/> <method name="registerAidsForService(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)Z" since="21"/> <method name="removeAidsForService(Landroid/content/ComponentName;Ljava/lang/String;)Z" since="21"/> - <method name="setOffHostForService(Landroid/content/ComponentName;Ljava/lang/String;)Z" since="29"/> <method name="setPreferredService(Landroid/app/Activity;Landroid/content/ComponentName;)Z" since="21"/> <method name="supportsAidPrefixRegistration()Z" since="21"/> - <method name="unsetOffHostForService(Landroid/content/ComponentName;)Z" since="29"/> <method name="unsetPreferredService(Landroid/app/Activity;)Z" since="21"/> <field name="ACTION_CHANGE_DEFAULT"/> <field name="CATEGORY_OTHER"/> @@ -30225,6 +28902,7 @@ </class> <class name="android/nfc/cardemulation/NfcFCardEmulation" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="disableService(Landroid/app/Activity;)Z"/> <method name="enableService(Landroid/app/Activity;Landroid/content/ComponentName;)Z"/> <method name="getInstance(Landroid/nfc/NfcAdapter;)Landroid/nfc/cardemulation/NfcFCardEmulation;"/> @@ -30240,9 +28918,16 @@ <field name="SERVICE_INTERFACE"/> <field name="SERVICE_META_DATA"/> </class> - <class name="android/nfc/tech/IsoDep" since="10"> + <class name="android/nfc/tech/BasicTagTechnology" since="10" removed="29"> <extends name="java/lang/Object"/> <implements name="android/nfc/tech/TagTechnology"/> + <method name="<init>()V"/> + </class> + <class name="android/nfc/tech/IsoDep" since="10"> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/IsoDep;"/> <method name="getHiLayerResponse()[B"/> <method name="getHistoricalBytes()[B"/> @@ -30253,8 +28938,10 @@ <method name="transceive([B)[B"/> </class> <class name="android/nfc/tech/MifareClassic" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="authenticateSectorWithKeyA(I[B)Z"/> <method name="authenticateSectorWithKeyB(I[B)Z"/> <method name="blockToSector(I)I"/> @@ -30289,8 +28976,10 @@ <field name="TYPE_UNKNOWN"/> </class> <class name="android/nfc/tech/MifareUltralight" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/MifareUltralight;"/> <method name="getMaxTransceiveLength()I" since="14"/> <method name="getTimeout()I" since="14"/> @@ -30305,8 +28994,10 @@ <field name="TYPE_UNKNOWN"/> </class> <class name="android/nfc/tech/Ndef" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="canMakeReadOnly()Z"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/Ndef;"/> <method name="getCachedNdefMessage()Landroid/nfc/NdefMessage;"/> @@ -30323,15 +29014,19 @@ <field name="NFC_FORUM_TYPE_4"/> </class> <class name="android/nfc/tech/NdefFormatable" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="format(Landroid/nfc/NdefMessage;)V"/> <method name="formatReadOnly(Landroid/nfc/NdefMessage;)V"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NdefFormatable;"/> </class> <class name="android/nfc/tech/NfcA" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcA;"/> <method name="getAtqa()[B"/> <method name="getMaxTransceiveLength()I" since="14"/> @@ -30341,8 +29036,10 @@ <method name="transceive([B)[B"/> </class> <class name="android/nfc/tech/NfcB" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcB;"/> <method name="getApplicationData()[B"/> <method name="getMaxTransceiveLength()I" since="14"/> @@ -30350,8 +29047,10 @@ <method name="transceive([B)[B"/> </class> <class name="android/nfc/tech/NfcBarcode" since="17"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcBarcode;"/> <method name="getBarcode()[B"/> <method name="getType()I"/> @@ -30359,8 +29058,10 @@ <field name="TYPE_UNKNOWN"/> </class> <class name="android/nfc/tech/NfcF" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcF;"/> <method name="getManufacturer()[B"/> <method name="getMaxTransceiveLength()I" since="14"/> @@ -30370,8 +29071,10 @@ <method name="transceive([B)[B"/> </class> <class name="android/nfc/tech/NfcV" since="10"> - <extends name="java/lang/Object"/> - <implements name="android/nfc/tech/TagTechnology"/> + <extends name="android/nfc/tech/BasicTagTechnology" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/nfc/Tag;)V" since="29"/> <method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcV;"/> <method name="getDsfId()B"/> <method name="getMaxTransceiveLength()I" since="14"/> @@ -30536,74 +29239,20 @@ <field name="EGL_WIDTH"/> <field name="EGL_WINDOW_BIT"/> </class> - <class name="android/opengl/EGL15" since="29"> - <extends name="java/lang/Object"/> - <method name="eglClientWaitSync(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSync;IJ)I"/> - <method name="eglCreateImage(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;IJ[JI)Landroid/opengl/EGLImage;"/> - <method name="eglCreatePlatformPixmapSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/nio/Buffer;[JI)Landroid/opengl/EGLSurface;"/> - <method name="eglCreatePlatformWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/nio/Buffer;[JI)Landroid/opengl/EGLSurface;"/> - <method name="eglCreateSync(Landroid/opengl/EGLDisplay;I[JI)Landroid/opengl/EGLSync;"/> - <method name="eglDestroyImage(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLImage;)Z"/> - <method name="eglDestroySync(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSync;)Z"/> - <method name="eglGetPlatformDisplay(IJ[JI)Landroid/opengl/EGLDisplay;"/> - <method name="eglGetSyncAttrib(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSync;I[JI)Z"/> - <method name="eglWaitSync(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSync;I)Z"/> - <field name="EGL_CL_EVENT_HANDLE"/> - <field name="EGL_CONDITION_SATISFIED"/> - <field name="EGL_CONTEXT_MAJOR_VERSION"/> - <field name="EGL_CONTEXT_MINOR_VERSION"/> - <field name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/> - <field name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/> - <field name="EGL_CONTEXT_OPENGL_DEBUG"/> - <field name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/> - <field name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/> - <field name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/> - <field name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/> - <field name="EGL_FOREVER"/> - <field name="EGL_GL_COLORSPACE"/> - <field name="EGL_GL_COLORSPACE_LINEAR"/> - <field name="EGL_GL_COLORSPACE_SRGB"/> - <field name="EGL_GL_RENDERBUFFER"/> - <field name="EGL_GL_TEXTURE_2D"/> - <field name="EGL_GL_TEXTURE_3D"/> - <field name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/> - <field name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/> - <field name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/> - <field name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/> - <field name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/> - <field name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/> - <field name="EGL_GL_TEXTURE_LEVEL"/> - <field name="EGL_GL_TEXTURE_ZOFFSET"/> - <field name="EGL_IMAGE_PRESERVED"/> - <field name="EGL_LOSE_CONTEXT_ON_RESET"/> - <field name="EGL_NO_CONTEXT"/> - <field name="EGL_NO_DISPLAY"/> - <field name="EGL_NO_IMAGE"/> - <field name="EGL_NO_RESET_NOTIFICATION"/> - <field name="EGL_NO_SURFACE"/> - <field name="EGL_NO_SYNC"/> - <field name="EGL_OPENGL_ES3_BIT"/> - <field name="EGL_PLATFORM_ANDROID_KHR"/> - <field name="EGL_SIGNALED"/> - <field name="EGL_SYNC_CL_EVENT"/> - <field name="EGL_SYNC_CL_EVENT_COMPLETE"/> - <field name="EGL_SYNC_CONDITION"/> - <field name="EGL_SYNC_FENCE"/> - <field name="EGL_SYNC_FLUSH_COMMANDS_BIT"/> - <field name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/> - <field name="EGL_SYNC_STATUS"/> - <field name="EGL_SYNC_TYPE"/> - <field name="EGL_TIMEOUT_EXPIRED"/> - <field name="EGL_UNSIGNALED"/> - </class> <class name="android/opengl/EGLConfig" since="17"> <extends name="android/opengl/EGLObjectHandle"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> </class> <class name="android/opengl/EGLContext" since="17"> <extends name="android/opengl/EGLObjectHandle"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> </class> <class name="android/opengl/EGLDisplay" since="17"> <extends name="android/opengl/EGLObjectHandle"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> </class> <class name="android/opengl/EGLExt" since="18"> <extends name="java/lang/Object"/> @@ -30615,9 +29264,6 @@ <field name="EGL_OPENGL_ES3_BIT_KHR"/> <field name="EGL_RECORDABLE_ANDROID" since="26"/> </class> - <class name="android/opengl/EGLImage" since="29"> - <extends name="android/opengl/EGLObjectHandle"/> - </class> <class name="android/opengl/EGLObjectHandle" since="17"> <extends name="java/lang/Object"/> <method name="<init>(I)V" deprecated="21"/> @@ -30627,9 +29273,8 @@ </class> <class name="android/opengl/EGLSurface" since="17"> <extends name="android/opengl/EGLObjectHandle"/> - </class> - <class name="android/opengl/EGLSync" since="29"> - <extends name="android/opengl/EGLObjectHandle"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> </class> <class name="android/opengl/ETC1" since="8"> <extends name="java/lang/Object"/> @@ -32444,6 +31089,7 @@ </class> <class name="android/opengl/GLES31" since="21"> <extends name="android/opengl/GLES30"/> + <method name="<init>()V"/> <method name="glActiveShaderProgram(II)V"/> <method name="glBindImageTexture(IIIZIII)V"/> <method name="glBindProgramPipeline(I)V"/> @@ -32719,6 +31365,7 @@ </class> <class name="android/opengl/GLES31Ext" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="glBlendBarrierKHR()V"/> <method name="glBlendEquationSeparateiEXT(III)V"/> <method name="glBlendEquationiEXT(II)V"/> @@ -32974,6 +31621,7 @@ </class> <class name="android/opengl/GLES32" since="24"> <extends name="android/opengl/GLES31"/> + <method name="<init>()V"/> <method name="glBlendBarrier()V"/> <method name="glBlendEquationSeparatei(III)V"/> <method name="glBlendEquationi(II)V"/> @@ -33315,6 +31963,7 @@ </class> <class name="android/opengl/GLUtils" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getEGLErrorString(I)Ljava/lang/String;" since="14"/> <method name="getInternalFormat(Landroid/graphics/Bitmap;)I"/> <method name="getType(Landroid/graphics/Bitmap;)I"/> @@ -33389,6 +32038,7 @@ </class> <class name="android/os/BaseBundle" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="clear()V"/> <method name="containsKey(Ljava/lang/String;)Z"/> <method name="get(Ljava/lang/String;)Ljava/lang/Object;"/> @@ -33425,7 +32075,7 @@ </class> <class name="android/os/BatteryManager" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="23"/> + <method name="<init>()V"/> <method name="computeChargeTimeRemaining()J" since="28"/> <method name="getIntProperty(I)I" since="21"/> <method name="getLongProperty(I)J" since="21"/> @@ -33469,27 +32119,20 @@ <extends name="java/lang/Object"/> <implements name="android/os/IBinder"/> <method name="<init>()V"/> - <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V"/> <method name="clearCallingIdentity()J"/> - <method name="clearCallingWorkSource()J" since="29"/> <method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V"/> <method name="flushPendingCommands()V"/> <method name="getCallingPid()I"/> <method name="getCallingUid()I"/> - <method name="getCallingUidOrThrow()I" since="29"/> <method name="getCallingUserHandle()Landroid/os/UserHandle;" since="17"/> - <method name="getCallingWorkSourceUid()I" since="29"/> <method name="joinThreadPool()V"/> <method name="onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z"/> <method name="restoreCallingIdentity(J)V"/> - <method name="restoreCallingWorkSource(J)V" since="29"/> - <method name="setCallingWorkSourceUid(I)J" since="29"/> </class> <class name="android/os/Build" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="getFingerprintedPartitions()Ljava/util/List;" since="29"/> <method name="getRadioVersion()Ljava/lang/String;" since="14"/> <method name="getSerial()Ljava/lang/String;" since="26"/> <field name="BOARD"/> @@ -33506,7 +32149,7 @@ <field name="MANUFACTURER" since="4"/> <field name="MODEL"/> <field name="PRODUCT"/> - <field name="RADIO" since="8" deprecated="15"/> + <field name="RADIO" since="8" deprecated="16"/> <field name="SERIAL" since="9" deprecated="26"/> <field name="SUPPORTED_32_BIT_ABIS" since="21"/> <field name="SUPPORTED_64_BIT_ABIS" since="21"/> @@ -33517,13 +32160,6 @@ <field name="UNKNOWN" since="8"/> <field name="USER"/> </class> - <class name="android/os/Build$Partition" since="29"> - <extends name="java/lang/Object"/> - <method name="getBuildTimeMillis()J"/> - <method name="getFingerprint()Ljava/lang/String;"/> - <method name="getName()Ljava/lang/String;"/> - <field name="PARTITION_NAME_SYSTEM"/> - </class> <class name="android/os/Build$VERSION" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -33532,7 +32168,7 @@ <field name="INCREMENTAL"/> <field name="PREVIEW_SDK_INT" since="23"/> <field name="RELEASE"/> - <field name="SDK" deprecated="15"/> + <field name="SDK" deprecated="16"/> <field name="SDK_INT" since="4"/> <field name="SECURITY_PATCH" since="23"/> </class> @@ -33560,6 +32196,7 @@ <field name="JELLY_BEAN_MR2" since="18"/> <field name="KITKAT" since="19"/> <field name="KITKAT_WATCH" since="20"/> + <field name="L" since="21" removed="22"/> <field name="LOLLIPOP" since="21"/> <field name="LOLLIPOP_MR1" since="22"/> <field name="M" since="23"/> @@ -33568,7 +32205,6 @@ <field name="O" since="26"/> <field name="O_MR1" since="27"/> <field name="P" since="28"/> - <field name="Q" since="29"/> </class> <class name="android/os/Bundle" since="1"> <extends name="android/os/BaseBundle" since="21"/> @@ -33702,6 +32338,8 @@ <class name="android/os/CpuUsageInfo" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getActive()J"/> <method name="getTotal()J"/> <field name="CREATOR"/> @@ -33717,8 +32355,9 @@ </class> <class name="android/os/Debug" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="attachJvmtiAgent(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V" since="28"/> - <method name="changeDebugPort(I)V" deprecated="15"/> + <method name="changeDebugPort(I)V" deprecated="16"/> <method name="dumpHprofData(Ljava/lang/String;)V" since="3"/> <method name="dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;[Ljava/lang/String;)Z" since="8"/> <method name="enableEmulatorTraceOutput()V"/> @@ -33731,10 +32370,10 @@ <method name="getGlobalAllocSize()I" deprecated="23"/> <method name="getGlobalClassInitCount()I" since="8" deprecated="23"/> <method name="getGlobalClassInitTime()I" since="8" deprecated="23"/> - <method name="getGlobalExternalAllocCount()I" deprecated="15"/> - <method name="getGlobalExternalAllocSize()I" deprecated="15"/> - <method name="getGlobalExternalFreedCount()I" deprecated="15"/> - <method name="getGlobalExternalFreedSize()I" deprecated="15"/> + <method name="getGlobalExternalAllocCount()I" deprecated="16"/> + <method name="getGlobalExternalAllocSize()I" deprecated="16"/> + <method name="getGlobalExternalFreedCount()I" deprecated="16"/> + <method name="getGlobalExternalFreedSize()I" deprecated="16"/> <method name="getGlobalFreedCount()I" deprecated="23"/> <method name="getGlobalFreedSize()I" deprecated="23"/> <method name="getGlobalGcInvocationCount()I" deprecated="23"/> @@ -33748,8 +32387,8 @@ <method name="getRuntimeStats()Ljava/util/Map;" since="23"/> <method name="getThreadAllocCount()I" deprecated="23"/> <method name="getThreadAllocSize()I" deprecated="23"/> - <method name="getThreadExternalAllocCount()I" deprecated="15"/> - <method name="getThreadExternalAllocSize()I" deprecated="15"/> + <method name="getThreadExternalAllocCount()I" deprecated="16"/> + <method name="getThreadExternalAllocSize()I" deprecated="16"/> <method name="getThreadGcInvocationCount()I" deprecated="23"/> <method name="isDebuggerConnected()Z"/> <method name="printLoadedClasses(I)V"/> @@ -33758,20 +32397,20 @@ <method name="resetGlobalAllocSize()V" deprecated="23"/> <method name="resetGlobalClassInitCount()V" since="8" deprecated="23"/> <method name="resetGlobalClassInitTime()V" since="8" deprecated="23"/> - <method name="resetGlobalExternalAllocCount()V" deprecated="15"/> - <method name="resetGlobalExternalAllocSize()V" deprecated="15"/> - <method name="resetGlobalExternalFreedCount()V" deprecated="15"/> - <method name="resetGlobalExternalFreedSize()V" deprecated="15"/> + <method name="resetGlobalExternalAllocCount()V" deprecated="16"/> + <method name="resetGlobalExternalAllocSize()V" deprecated="16"/> + <method name="resetGlobalExternalFreedCount()V" deprecated="16"/> + <method name="resetGlobalExternalFreedSize()V" deprecated="16"/> <method name="resetGlobalFreedCount()V" deprecated="23"/> <method name="resetGlobalFreedSize()V" deprecated="23"/> <method name="resetGlobalGcInvocationCount()V" deprecated="23"/> <method name="resetThreadAllocCount()V" deprecated="23"/> <method name="resetThreadAllocSize()V" deprecated="23"/> - <method name="resetThreadExternalAllocCount()V" deprecated="15"/> - <method name="resetThreadExternalAllocSize()V" deprecated="15"/> + <method name="resetThreadExternalAllocCount()V" deprecated="16"/> + <method name="resetThreadExternalAllocSize()V" deprecated="16"/> <method name="resetThreadGcInvocationCount()V" deprecated="23"/> - <method name="setAllocationLimit(I)I" deprecated="15"/> - <method name="setGlobalAllocationLimit(I)I" deprecated="15"/> + <method name="setAllocationLimit(I)I" deprecated="16"/> + <method name="setGlobalAllocationLimit(I)I" deprecated="16"/> <method name="startAllocCounting()V" deprecated="18"/> <method name="startMethodTracing()V"/> <method name="startMethodTracing(Ljava/lang/String;)V"/> @@ -33792,11 +32431,11 @@ </class> <class name="android/os/Debug$InstructionCount" since="1" deprecated="23"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="collect()Z" deprecated="29"/> - <method name="globalMethodInvocations()I" deprecated="29"/> - <method name="globalTotal()I" deprecated="29"/> - <method name="resetAndStart()Z" deprecated="29"/> + <method name="<init>()V"/> + <method name="collect()Z"/> + <method name="globalMethodInvocations()I"/> + <method name="globalTotal()I"/> + <method name="resetAndStart()Z"/> </class> <class name="android/os/Debug$MemoryInfo" since="1"> <extends name="java/lang/Object"/> @@ -33835,7 +32474,6 @@ <method name="getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;"/> <method name="isTagEnabled(Ljava/lang/String;)Z"/> <field name="ACTION_DROPBOX_ENTRY_ADDED" since="11"/> - <field name="EXTRA_DROPPED_COUNT" since="29"/> <field name="EXTRA_TAG" since="11"/> <field name="EXTRA_TIME" since="11"/> <field name="IS_EMPTY"/> @@ -33864,20 +32502,17 @@ <method name="<init>()V"/> <method name="getDataDirectory()Ljava/io/File;"/> <method name="getDownloadCacheDirectory()Ljava/io/File;"/> - <method name="getExternalStorageDirectory()Ljava/io/File;" deprecated="29"/> - <method name="getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;" since="8" deprecated="29"/> + <method name="getExternalStorageDirectory()Ljava/io/File;"/> + <method name="getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;" since="8"/> <method name="getExternalStorageState()Ljava/lang/String;"/> <method name="getExternalStorageState(Ljava/io/File;)Ljava/lang/String;" since="21"/> <method name="getRootDirectory()Ljava/io/File;"/> <method name="getStorageState(Ljava/io/File;)Ljava/lang/String;" since="19" deprecated="21"/> <method name="isExternalStorageEmulated()Z" since="11"/> <method name="isExternalStorageEmulated(Ljava/io/File;)Z" since="21"/> - <method name="isExternalStorageLegacy()Z" since="29"/> - <method name="isExternalStorageLegacy(Ljava/io/File;)Z" since="29"/> <method name="isExternalStorageRemovable()Z" since="9"/> <method name="isExternalStorageRemovable(Ljava/io/File;)Z" since="21"/> <field name="DIRECTORY_ALARMS" since="8"/> - <field name="DIRECTORY_AUDIOBOOKS" since="29"/> <field name="DIRECTORY_DCIM" since="8"/> <field name="DIRECTORY_DOCUMENTS" since="19"/> <field name="DIRECTORY_DOWNLOADS" since="8"/> @@ -33887,7 +32522,6 @@ <field name="DIRECTORY_PICTURES" since="8"/> <field name="DIRECTORY_PODCASTS" since="8"/> <field name="DIRECTORY_RINGTONES" since="8"/> - <field name="DIRECTORY_SCREENSHOTS" since="29"/> <field name="MEDIA_BAD_REMOVAL"/> <field name="MEDIA_CHECKING" since="3"/> <field name="MEDIA_EJECTING" since="23"/> @@ -33902,12 +32536,8 @@ </class> <class name="android/os/FileObserver" since="1"> <extends name="java/lang/Object"/> - <method name="<init>(Ljava/io/File;)V" since="29"/> - <method name="<init>(Ljava/io/File;I)V" since="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;I)V" deprecated="29"/> - <method name="<init>(Ljava/util/List;)V" since="29"/> - <method name="<init>(Ljava/util/List;I)V" since="29"/> + <method name="<init>(Ljava/lang/String;)V"/> + <method name="<init>(Ljava/lang/String;I)V"/> <method name="onEvent(ILjava/lang/String;)V"/> <method name="startWatching()V"/> <method name="stopWatching()V"/> @@ -33929,19 +32559,6 @@ <extends name="java/lang/RuntimeException"/> <method name="<init>(Ljava/lang/String;)V"/> </class> - <class name="android/os/FileUtils" since="29"> - <extends name="java/lang/Object"/> - <method name="closeQuietly(Ljava/io/FileDescriptor;)V"/> - <method name="closeQuietly(Ljava/lang/AutoCloseable;)V"/> - <method name="copy(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)J"/> - <method name="copy(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J"/> - <method name="copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J"/> - <method name="copy(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J"/> - </class> - <class name="android/os/FileUtils$ProgressListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onProgress(J)V"/> - </class> <class name="android/os/Handler" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -33955,7 +32572,6 @@ <method name="getLooper()Landroid/os/Looper;"/> <method name="getMessageName(Landroid/os/Message;)Ljava/lang/String;" since="14"/> <method name="handleMessage(Landroid/os/Message;)V"/> - <method name="hasCallbacks(Ljava/lang/Runnable;)Z" since="29"/> <method name="hasMessages(I)Z"/> <method name="hasMessages(ILjava/lang/Object;)Z"/> <method name="obtainMessage()Landroid/os/Message;"/> @@ -33998,6 +32614,7 @@ </class> <class name="android/os/HardwarePropertiesManager" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getCpuUsages()[Landroid/os/CpuUsageInfo;"/> <method name="getDeviceTemperatures(II)[F"/> <method name="getFanSpeeds()[F"/> @@ -34051,7 +32668,6 @@ <method name="getFirstMatch([Ljava/lang/String;)Ljava/util/Locale;"/> <method name="indexOf(Ljava/util/Locale;)I"/> <method name="isEmpty()Z"/> - <method name="isPseudoLocale(Landroid/icu/util/ULocale;)Z" since="29"/> <method name="setDefault(Landroid/os/LocaleList;)V"/> <method name="size()I"/> <method name="toLanguageTags()Ljava/lang/String;"/> @@ -34059,6 +32675,8 @@ </class> <class name="android/os/Looper" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Z)V" since="29"/> <method name="dump(Landroid/util/Printer;Ljava/lang/String;)V"/> <method name="getMainLooper()Landroid/os/Looper;"/> <method name="getQueue()Landroid/os/MessageQueue;" since="23"/> @@ -34119,6 +32737,8 @@ </class> <class name="android/os/MessageQueue" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Z)V" since="29"/> <method name="addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V"/> <method name="addOnFileDescriptorEventListener(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V" since="23"/> <method name="isIdle()Z" since="23"/> @@ -34158,6 +32778,8 @@ </class> <class name="android/os/Parcel" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(J)V" since="29"/> <method name="appendFrom(Landroid/os/Parcel;II)V"/> <method name="createBinderArray()[Landroid/os/IBinder;"/> <method name="createBinderArrayList()Ljava/util/ArrayList;"/> @@ -34172,8 +32794,6 @@ <method name="createStringArrayList()Ljava/util/ArrayList;"/> <method name="createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;"/> <method name="createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;"/> - <method name="createTypedArrayMap(Landroid/os/Parcelable$Creator;)Landroid/util/ArrayMap;" since="29"/> - <method name="createTypedSparseArray(Landroid/os/Parcelable$Creator;)Landroid/util/SparseArray;" since="29"/> <method name="dataAvail()I"/> <method name="dataCapacity()I"/> <method name="dataPosition()I"/> @@ -34187,7 +32807,6 @@ <method name="readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList;"/> <method name="readBinderArray([Landroid/os/IBinder;)V"/> <method name="readBinderList(Ljava/util/List;)V"/> - <method name="readBoolean()Z" since="29"/> <method name="readBooleanArray([Z)V"/> <method name="readBundle()Landroid/os/Bundle;"/> <method name="readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;"/> @@ -34210,7 +32829,6 @@ <method name="readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V"/> <method name="readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;"/> <method name="readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable;"/> - <method name="readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List;" since="29"/> <method name="readPersistableBundle()Landroid/os/PersistableBundle;" since="21"/> <method name="readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle;" since="21"/> <method name="readSerializable()Ljava/io/Serializable;"/> @@ -34234,7 +32852,6 @@ <method name="writeArray([Ljava/lang/Object;)V"/> <method name="writeBinderArray([Landroid/os/IBinder;)V"/> <method name="writeBinderList(Ljava/util/List;)V"/> - <method name="writeBoolean(Z)V" since="29"/> <method name="writeBooleanArray([Z)V"/> <method name="writeBundle(Landroid/os/Bundle;)V"/> <method name="writeByte(B)V"/> @@ -34257,7 +32874,6 @@ <method name="writeNoException()V"/> <method name="writeParcelable(Landroid/os/Parcelable;I)V"/> <method name="writeParcelableArray([Landroid/os/Parcelable;I)V"/> - <method name="writeParcelableList(Ljava/util/List;I)V" since="29"/> <method name="writePersistableBundle(Landroid/os/PersistableBundle;)V" since="21"/> <method name="writeSerializable(Ljava/io/Serializable;)V"/> <method name="writeSize(Landroid/util/Size;)V" since="21"/> @@ -34270,10 +32886,8 @@ <method name="writeStrongBinder(Landroid/os/IBinder;)V"/> <method name="writeStrongInterface(Landroid/os/IInterface;)V"/> <method name="writeTypedArray([Landroid/os/Parcelable;I)V"/> - <method name="writeTypedArrayMap(Landroid/util/ArrayMap;I)V" since="29"/> <method name="writeTypedList(Ljava/util/List;)V"/> <method name="writeTypedObject(Landroid/os/Parcelable;I)V" since="23"/> - <method name="writeTypedSparseArray(Landroid/util/SparseArray;I)V" since="29"/> <method name="writeValue(Ljava/lang/Object;)V"/> <field name="STRING_CREATOR"/> </class> @@ -34388,9 +33002,7 @@ </class> <class name="android/os/PowerManager" since="1"> <extends name="java/lang/Object"/> - <method name="addThermalStatusListener(Landroid/os/PowerManager$OnThermalStatusChangedListener;)V" since="29"/> - <method name="addThermalStatusListener(Ljava/util/concurrent/Executor;Landroid/os/PowerManager$OnThermalStatusChangedListener;)V" since="29"/> - <method name="getCurrentThermalStatus()I" since="29"/> + <method name="<init>()V"/> <method name="getLocationPowerSaveMode()I" since="28"/> <method name="goToSleep(J)V" removed="21"/> <method name="isDeviceIdleMode()Z" since="23"/> @@ -34402,7 +33014,6 @@ <method name="isWakeLockLevelSupported(I)Z" since="21"/> <method name="newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;"/> <method name="reboot(Ljava/lang/String;)V" since="8"/> - <method name="removeThermalStatusListener(Landroid/os/PowerManager$OnThermalStatusChangedListener;)V" since="29"/> <method name="userActivity(JZ)V" removed="21"/> <method name="wakeUp(J)V" since="17" removed="21"/> <field name="ACQUIRE_CAUSES_WAKEUP"/> @@ -34413,27 +33024,17 @@ <field name="LOCATION_MODE_FOREGROUND_ONLY" since="28"/> <field name="LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF" since="28"/> <field name="LOCATION_MODE_NO_CHANGE" since="28"/> - <field name="LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF" since="29"/> <field name="ON_AFTER_RELEASE"/> <field name="PARTIAL_WAKE_LOCK"/> <field name="PROXIMITY_SCREEN_OFF_WAKE_LOCK" since="21"/> <field name="RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY" since="21"/> - <field name="SCREEN_BRIGHT_WAKE_LOCK" deprecated="15"/> + <field name="SCREEN_BRIGHT_WAKE_LOCK" deprecated="16"/> <field name="SCREEN_DIM_WAKE_LOCK" deprecated="17"/> - <field name="THERMAL_STATUS_CRITICAL" since="29"/> - <field name="THERMAL_STATUS_EMERGENCY" since="29"/> - <field name="THERMAL_STATUS_LIGHT" since="29"/> - <field name="THERMAL_STATUS_MODERATE" since="29"/> - <field name="THERMAL_STATUS_NONE" since="29"/> - <field name="THERMAL_STATUS_SEVERE" since="29"/> - <field name="THERMAL_STATUS_SHUTDOWN" since="29"/> - </class> - <class name="android/os/PowerManager$OnThermalStatusChangedListener" since="29"> - <extends name="java/lang/Object"/> - <method name="onThermalStatusChanged(I)V"/> </class> <class name="android/os/PowerManager$WakeLock" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/os/PowerManager;)V" removed="29"/> + <method name="<init>(Landroid/os/PowerManager;ILjava/lang/String;Ljava/lang/String;)V" since="29"/> <method name="acquire()V"/> <method name="acquire(J)V"/> <method name="isHeld()Z"/> @@ -34463,15 +33064,11 @@ <method name="sendSignal(II)V"/> <method name="setThreadPriority(I)V"/> <method name="setThreadPriority(II)V"/> - <method name="supportsProcesses()Z" deprecated="15"/> + <method name="supportsProcesses()Z" deprecated="16"/> <field name="BLUETOOTH_GID" removed="18"/> - <field name="BLUETOOTH_UID" since="29"/> <field name="FIRST_APPLICATION_UID"/> - <field name="INVALID_UID" since="29"/> <field name="LAST_APPLICATION_UID"/> <field name="PHONE_UID"/> - <field name="ROOT_UID" since="29"/> - <field name="SHELL_UID" since="29"/> <field name="SIGNAL_KILL"/> <field name="SIGNAL_QUIT"/> <field name="SIGNAL_USR1"/> @@ -34499,7 +33096,7 @@ </class> <class name="android/os/RecoverySystem" since="8"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="23"/> + <method name="<init>()V"/> <method name="installPackage(Landroid/content/Context;Ljava/io/File;)V"/> <method name="rebootWipeCache(Landroid/content/Context;)V" since="14"/> <method name="rebootWipeUserData(Landroid/content/Context;)V"/> @@ -34543,6 +33140,8 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <implements name="java/io/Closeable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/io/FileDescriptor;)V" since="29"/> <method name="create(Ljava/lang/String;I)Landroid/os/SharedMemory;"/> <method name="getSize()I"/> <method name="map(III)Ljava/nio/ByteBuffer;"/> @@ -34570,6 +33169,7 @@ </class> <class name="android/os/StrictMode" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy;"/> <method name="allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy;"/> <method name="enableDefaults()V"/> @@ -34589,6 +33189,8 @@ </class> <class name="android/os/StrictMode$ThreadPolicy" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V" since="29"/> <field name="LAX"/> </class> <class name="android/os/StrictMode$ThreadPolicy$Builder" since="9"> @@ -34620,6 +33222,8 @@ </class> <class name="android/os/StrictMode$VmPolicy" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;)V" since="29"/> <field name="LAX"/> </class> <class name="android/os/StrictMode$VmPolicy$Builder" since="9"> @@ -34631,9 +33235,7 @@ <method name="detectAll()Landroid/os/StrictMode$VmPolicy$Builder;"/> <method name="detectCleartextNetwork()Landroid/os/StrictMode$VmPolicy$Builder;" since="23"/> <method name="detectContentUriWithoutPermission()Landroid/os/StrictMode$VmPolicy$Builder;" since="26"/> - <method name="detectCredentialProtectedWhileLocked()Landroid/os/StrictMode$VmPolicy$Builder;" since="29"/> <method name="detectFileUriExposure()Landroid/os/StrictMode$VmPolicy$Builder;" since="18"/> - <method name="detectImplicitDirectBoot()Landroid/os/StrictMode$VmPolicy$Builder;" since="29"/> <method name="detectLeakedClosableObjects()Landroid/os/StrictMode$VmPolicy$Builder;" since="11"/> <method name="detectLeakedRegistrationObjects()Landroid/os/StrictMode$VmPolicy$Builder;" since="16"/> <method name="detectLeakedSqlLiteObjects()Landroid/os/StrictMode$VmPolicy$Builder;"/> @@ -34650,7 +33252,7 @@ </class> <class name="android/os/SystemClock" since="1"> <extends name="java/lang/Object"/> - <method name="currentGnssTimeClock()Ljava/time/Clock;" since="29"/> + <method name="<init>()V"/> <method name="currentThreadTimeMillis()J"/> <method name="elapsedRealtime()J"/> <method name="elapsedRealtimeNanos()J" since="17"/> @@ -34660,6 +33262,8 @@ </class> <class name="android/os/TestLooperManager" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Looper;)V" since="29"/> <method name="execute(Landroid/os/Message;)V"/> <method name="getMessageQueue()Landroid/os/MessageQueue;"/> <method name="hasMessages(Landroid/os/Handler;Ljava/lang/Object;I)Z"/> @@ -34682,12 +33286,9 @@ </class> <class name="android/os/Trace" since="18"> <extends name="java/lang/Object"/> - <method name="beginAsyncSection(Ljava/lang/String;I)V" since="29"/> + <method name="<init>()V"/> <method name="beginSection(Ljava/lang/String;)V"/> - <method name="endAsyncSection(Ljava/lang/String;I)V" since="29"/> <method name="endSection()V"/> - <method name="isEnabled()Z" since="29"/> - <method name="setCounter(Ljava/lang/String;J)V" since="29"/> </class> <class name="android/os/TransactionTooLargeException" since="15"> <extends name="android/os/RemoteException"/> @@ -34705,6 +33306,7 @@ </class> <class name="android/os/UserManager" since="17"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createUserCreationIntent(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/PersistableBundle;)Landroid/content/Intent;" since="24"/> <method name="getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;" since="18"/> <method name="getSerialNumberForUser(Landroid/os/UserHandle;)J"/> @@ -34748,13 +33350,10 @@ <field name="DISALLOW_CONFIG_LOCALE" since="28"/> <field name="DISALLOW_CONFIG_LOCATION" since="28"/> <field name="DISALLOW_CONFIG_MOBILE_NETWORKS" since="21"/> - <field name="DISALLOW_CONFIG_PRIVATE_DNS" since="29"/> <field name="DISALLOW_CONFIG_SCREEN_TIMEOUT" since="28"/> <field name="DISALLOW_CONFIG_TETHERING" since="21"/> <field name="DISALLOW_CONFIG_VPN" since="21"/> <field name="DISALLOW_CONFIG_WIFI" since="18"/> - <field name="DISALLOW_CONTENT_CAPTURE" since="29"/> - <field name="DISALLOW_CONTENT_SUGGESTIONS" since="29"/> <field name="DISALLOW_CREATE_WINDOWS" since="21"/> <field name="DISALLOW_CROSS_PROFILE_COPY_PASTE" since="21"/> <field name="DISALLOW_DATA_ROAMING" since="24"/> @@ -34763,7 +33362,6 @@ <field name="DISALLOW_FUN" since="23"/> <field name="DISALLOW_INSTALL_APPS" since="18"/> <field name="DISALLOW_INSTALL_UNKNOWN_SOURCES" since="18"/> - <field name="DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY" since="29"/> <field name="DISALLOW_MODIFY_ACCOUNTS" since="18"/> <field name="DISALLOW_MOUNT_PHYSICAL_MEDIA" since="21"/> <field name="DISALLOW_NETWORK_RESET" since="23"/> @@ -34798,24 +33396,23 @@ </class> <class name="android/os/UserManager$UserOperationException" since="28"> <extends name="java/lang/RuntimeException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;I)V" since="29"/> <method name="getUserOperationResult()I"/> </class> <class name="android/os/VibrationEffect" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="createOneShot(JI)Landroid/os/VibrationEffect;"/> - <method name="createPredefined(I)Landroid/os/VibrationEffect;" since="29"/> <method name="createWaveform([JI)Landroid/os/VibrationEffect;"/> <method name="createWaveform([J[II)Landroid/os/VibrationEffect;"/> <field name="CREATOR"/> <field name="DEFAULT_AMPLITUDE"/> - <field name="EFFECT_CLICK" since="29"/> - <field name="EFFECT_DOUBLE_CLICK" since="29"/> - <field name="EFFECT_HEAVY_CLICK" since="29"/> - <field name="EFFECT_TICK" since="29"/> </class> <class name="android/os/Vibrator" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="hasAmplitudeControl()Z" since="26"/> <method name="hasVibrator()Z" since="11"/> @@ -34840,6 +33437,7 @@ </class> <class name="android/os/health/HealthStats" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDataType()Ljava/lang/String;"/> <method name="getMeasurement(I)J"/> <method name="getMeasurementKeyAt(I)I"/> @@ -34866,17 +33464,20 @@ </class> <class name="android/os/health/PackageHealthStats" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MEASUREMENTS_WAKEUP_ALARMS_COUNT"/> <field name="STATS_SERVICES"/> </class> <class name="android/os/health/PidHealthStats" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MEASUREMENT_WAKE_NESTING_COUNT"/> <field name="MEASUREMENT_WAKE_START_MS"/> <field name="MEASUREMENT_WAKE_SUM_MS"/> </class> <class name="android/os/health/ProcessHealthStats" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MEASUREMENT_ANR_COUNT"/> <field name="MEASUREMENT_CRASHES_COUNT"/> <field name="MEASUREMENT_FOREGROUND_MS"/> @@ -34886,11 +33487,13 @@ </class> <class name="android/os/health/ServiceHealthStats" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MEASUREMENT_LAUNCH_COUNT"/> <field name="MEASUREMENT_START_SERVICE_COUNT"/> </class> <class name="android/os/health/SystemHealthManager" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="takeMyUidSnapshot()Landroid/os/health/HealthStats;"/> <method name="takeUidSnapshot(I)Landroid/os/health/HealthStats;"/> <method name="takeUidSnapshots([I)[Landroid/os/health/HealthStats;"/> @@ -34909,6 +33512,7 @@ </class> <class name="android/os/health/UidHealthStats" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MEASUREMENT_BLUETOOTH_IDLE_MS"/> <field name="MEASUREMENT_BLUETOOTH_POWER_MAMS"/> <field name="MEASUREMENT_BLUETOOTH_RX_BYTES"/> @@ -34988,6 +33592,7 @@ </class> <class name="android/os/storage/StorageManager" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="allocateBytes(Ljava/io/FileDescriptor;J)V" since="26"/> <method name="allocateBytes(Ljava/util/UUID;J)V" since="26"/> <method name="getAllocatableBytes(Ljava/util/UUID;)J" since="26"/> @@ -34995,7 +33600,6 @@ <method name="getCacheSizeBytes(Ljava/util/UUID;)J" since="26"/> <method name="getMountedObbPath(Ljava/lang/String;)Ljava/lang/String;"/> <method name="getPrimaryStorageVolume()Landroid/os/storage/StorageVolume;" since="24"/> - <method name="getStorageVolume(Landroid/net/Uri;)Landroid/os/storage/StorageVolume;" since="29"/> <method name="getStorageVolume(Ljava/io/File;)Landroid/os/storage/StorageVolume;" since="24"/> <method name="getStorageVolumes()Ljava/util/List;" since="24"/> <method name="getUuidForPath(Ljava/io/File;)Ljava/util/UUID;" since="26"/> @@ -35017,8 +33621,9 @@ <class name="android/os/storage/StorageVolume" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="createAccessIntent(Ljava/lang/String;)Landroid/content/Intent;" deprecated="29"/> - <method name="createOpenDocumentTreeIntent()Landroid/content/Intent;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> + <method name="createAccessIntent(Ljava/lang/String;)Landroid/content/Intent;"/> <method name="getDescription(Landroid/content/Context;)Ljava/lang/String;"/> <method name="getState()Ljava/lang/String;"/> <method name="getUuid()Ljava/lang/String;"/> @@ -35030,72 +33635,97 @@ </class> <class name="android/os/strictmode/CleartextNetworkViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/os/strictmode/ContentUriWithoutPermissionViolation" since="28"> <extends name="android/os/strictmode/Violation"/> - </class> - <class name="android/os/strictmode/CredentialProtectedWhileLockedViolation" since="29"> - <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/Uri;Ljava/lang/String;)V" since="29"/> </class> <class name="android/os/strictmode/CustomViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/os/strictmode/DiskReadViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V"/> </class> <class name="android/os/strictmode/DiskWriteViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V"/> </class> <class name="android/os/strictmode/FileUriExposedViolation" since="28"> <extends name="android/os/strictmode/Violation"/> - </class> - <class name="android/os/strictmode/ImplicitDirectBootViolation" since="29"> - <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/os/strictmode/InstanceCountViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Class;JI)V" since="29"/> <method name="getNumberOfInstances()J"/> </class> <class name="android/os/strictmode/IntentReceiverLeakedViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Throwable;)V" since="29"/> </class> <class name="android/os/strictmode/LeakedClosableViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="29"/> </class> <class name="android/os/strictmode/NetworkViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V"/> </class> <class name="android/os/strictmode/NonSdkApiUsedViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/os/strictmode/ResourceMismatchViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Object;)V" since="29"/> </class> <class name="android/os/strictmode/ServiceConnectionLeakedViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Throwable;)V" since="29"/> </class> <class name="android/os/strictmode/SqliteObjectLeakedViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="29"/> </class> <class name="android/os/strictmode/UnbufferedIoViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V"/> </class> <class name="android/os/strictmode/UntaggedSocketViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V"/> </class> <class name="android/os/strictmode/Violation" since="28"> <extends name="java/lang/Throwable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/os/strictmode/WebViewMethodCalledOnWrongThreadViolation" since="28"> <extends name="android/os/strictmode/Violation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Throwable;)V" since="29"/> </class> - <class name="android/preference/CheckBoxPreference" since="1" deprecated="29"> + <class name="android/preference/CheckBoxPreference" since="1"> <extends name="android/preference/Preference" removed="14"/> <extends name="android/preference/TwoStatePreference" since="14"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> <method name="getDisableDependentsState()Z" removed="14"/> <method name="getSummaryOff()Ljava/lang/CharSequence;" removed="14"/> <method name="getSummaryOn()Ljava/lang/CharSequence;" removed="14"/> @@ -35107,406 +33737,410 @@ <method name="setSummaryOn(I)V" removed="14"/> <method name="setSummaryOn(Ljava/lang/CharSequence;)V" removed="14"/> </class> - <class name="android/preference/DialogPreference" since="1" deprecated="29"> + <class name="android/preference/DialogPreference" since="1"> <extends name="android/preference/Preference"/> <implements name="android/content/DialogInterface$OnClickListener"/> <implements name="android/content/DialogInterface$OnDismissListener"/> <implements name="android/preference/PreferenceManager$OnActivityDestroyListener"/> - <method name="<init>(Landroid/content/Context;)V" since="21" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="getDialog()Landroid/app/Dialog;" since="3" deprecated="29"/> - <method name="getDialogIcon()Landroid/graphics/drawable/Drawable;" deprecated="29"/> - <method name="getDialogLayoutResource()I" deprecated="29"/> - <method name="getDialogMessage()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getDialogTitle()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getNegativeButtonText()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getPositiveButtonText()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="onBindDialogView(Landroid/view/View;)V" deprecated="29"/> - <method name="onCreateDialogView()Landroid/view/View;" deprecated="29"/> - <method name="onDialogClosed(Z)V" deprecated="29"/> - <method name="onPrepareDialogBuilder(Landroid/app/AlertDialog$Builder;)V" deprecated="29"/> - <method name="setDialogIcon(I)V" deprecated="29"/> - <method name="setDialogIcon(Landroid/graphics/drawable/Drawable;)V" deprecated="29"/> - <method name="setDialogLayoutResource(I)V" deprecated="29"/> - <method name="setDialogMessage(I)V" deprecated="29"/> - <method name="setDialogMessage(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setDialogTitle(I)V" deprecated="29"/> - <method name="setDialogTitle(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setNegativeButtonText(I)V" deprecated="29"/> - <method name="setNegativeButtonText(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setPositiveButtonText(I)V" deprecated="29"/> - <method name="setPositiveButtonText(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="showDialog(Landroid/os/Bundle;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V" since="21"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="getDialog()Landroid/app/Dialog;" since="3"/> + <method name="getDialogIcon()Landroid/graphics/drawable/Drawable;"/> + <method name="getDialogLayoutResource()I"/> + <method name="getDialogMessage()Ljava/lang/CharSequence;"/> + <method name="getDialogTitle()Ljava/lang/CharSequence;"/> + <method name="getNegativeButtonText()Ljava/lang/CharSequence;"/> + <method name="getPositiveButtonText()Ljava/lang/CharSequence;"/> + <method name="onBindDialogView(Landroid/view/View;)V"/> + <method name="onCreateDialogView()Landroid/view/View;"/> + <method name="onDialogClosed(Z)V"/> + <method name="onPrepareDialogBuilder(Landroid/app/AlertDialog$Builder;)V"/> + <method name="setDialogIcon(I)V"/> + <method name="setDialogIcon(Landroid/graphics/drawable/Drawable;)V"/> + <method name="setDialogLayoutResource(I)V"/> + <method name="setDialogMessage(I)V"/> + <method name="setDialogMessage(Ljava/lang/CharSequence;)V"/> + <method name="setDialogTitle(I)V"/> + <method name="setDialogTitle(Ljava/lang/CharSequence;)V"/> + <method name="setNegativeButtonText(I)V"/> + <method name="setNegativeButtonText(Ljava/lang/CharSequence;)V"/> + <method name="setPositiveButtonText(I)V"/> + <method name="setPositiveButtonText(Ljava/lang/CharSequence;)V"/> + <method name="showDialog(Landroid/os/Bundle;)V"/> </class> - <class name="android/preference/EditTextPreference" since="1" deprecated="29"> + <class name="android/preference/EditTextPreference" since="1"> <extends name="android/preference/DialogPreference"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="getEditText()Landroid/widget/EditText;" deprecated="29"/> - <method name="getText()Ljava/lang/String;" deprecated="29"/> - <method name="onAddEditTextToDialogView(Landroid/view/View;Landroid/widget/EditText;)V" deprecated="29"/> - <method name="setText(Ljava/lang/String;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="getEditText()Landroid/widget/EditText;"/> + <method name="getText()Ljava/lang/String;"/> + <method name="onAddEditTextToDialogView(Landroid/view/View;Landroid/widget/EditText;)V"/> + <method name="setText(Ljava/lang/String;)V"/> </class> - <class name="android/preference/ListPreference" since="1" deprecated="29"> + <class name="android/preference/ListPreference" since="1"> <extends name="android/preference/DialogPreference"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="findIndexOfValue(Ljava/lang/String;)I" deprecated="29"/> - <method name="getEntries()[Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getEntry()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getEntryValues()[Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getValue()Ljava/lang/String;" deprecated="29"/> - <method name="setEntries(I)V" deprecated="29"/> - <method name="setEntries([Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setEntryValues(I)V" deprecated="29"/> - <method name="setEntryValues([Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setValue(Ljava/lang/String;)V" deprecated="29"/> - <method name="setValueIndex(I)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="findIndexOfValue(Ljava/lang/String;)I"/> + <method name="getEntries()[Ljava/lang/CharSequence;"/> + <method name="getEntry()Ljava/lang/CharSequence;"/> + <method name="getEntryValues()[Ljava/lang/CharSequence;"/> + <method name="getValue()Ljava/lang/String;"/> + <method name="setEntries(I)V"/> + <method name="setEntries([Ljava/lang/CharSequence;)V"/> + <method name="setEntryValues(I)V"/> + <method name="setEntryValues([Ljava/lang/CharSequence;)V"/> + <method name="setValue(Ljava/lang/String;)V"/> + <method name="setValueIndex(I)V"/> </class> - <class name="android/preference/MultiSelectListPreference" since="11" deprecated="29"> + <class name="android/preference/MultiSelectListPreference" since="11"> <extends name="android/preference/DialogPreference"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="findIndexOfValue(Ljava/lang/String;)I" deprecated="29"/> - <method name="getEntries()[Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getEntryValues()[Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getValues()Ljava/util/Set;" deprecated="29"/> - <method name="setEntries(I)V" deprecated="29"/> - <method name="setEntries([Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setEntryValues(I)V" deprecated="29"/> - <method name="setEntryValues([Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setValues(Ljava/util/Set;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="findIndexOfValue(Ljava/lang/String;)I"/> + <method name="getEntries()[Ljava/lang/CharSequence;"/> + <method name="getEntryValues()[Ljava/lang/CharSequence;"/> + <method name="getValues()Ljava/util/Set;"/> + <method name="setEntries(I)V"/> + <method name="setEntries([Ljava/lang/CharSequence;)V"/> + <method name="setEntryValues(I)V"/> + <method name="setEntryValues([Ljava/lang/CharSequence;)V"/> + <method name="setValues(Ljava/util/Set;)V"/> </class> - <class name="android/preference/Preference" since="1" deprecated="29"> + <class name="android/preference/Preference" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/Comparable"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="callChangeListener(Ljava/lang/Object;)Z" deprecated="29"/> - <method name="compareTo(Landroid/preference/Preference;)I" deprecated="29"/> - <method name="findPreferenceInHierarchy(Ljava/lang/String;)Landroid/preference/Preference;" deprecated="29"/> - <method name="getContext()Landroid/content/Context;" deprecated="29"/> - <method name="getDependency()Ljava/lang/String;" deprecated="29"/> - <method name="getEditor()Landroid/content/SharedPreferences$Editor;" deprecated="29"/> - <method name="getExtras()Landroid/os/Bundle;" since="11" deprecated="29"/> - <method name="getFragment()Ljava/lang/String;" since="11" deprecated="29"/> - <method name="getIcon()Landroid/graphics/drawable/Drawable;" since="11" deprecated="29"/> - <method name="getIntent()Landroid/content/Intent;" deprecated="29"/> - <method name="getKey()Ljava/lang/String;" deprecated="29"/> - <method name="getLayoutResource()I" deprecated="29"/> - <method name="getOnPreferenceChangeListener()Landroid/preference/Preference$OnPreferenceChangeListener;" deprecated="29"/> - <method name="getOnPreferenceClickListener()Landroid/preference/Preference$OnPreferenceClickListener;" deprecated="29"/> - <method name="getOrder()I" deprecated="29"/> - <method name="getParent()Landroid/preference/PreferenceGroup;" since="26" deprecated="29"/> - <method name="getPersistedBoolean(Z)Z" deprecated="29"/> - <method name="getPersistedFloat(F)F" deprecated="29"/> - <method name="getPersistedInt(I)I" deprecated="29"/> - <method name="getPersistedLong(J)J" deprecated="29"/> - <method name="getPersistedString(Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="getPersistedStringSet(Ljava/util/Set;)Ljava/util/Set;" since="24" deprecated="29"/> - <method name="getPreferenceDataStore()Landroid/preference/PreferenceDataStore;" since="26" deprecated="29"/> - <method name="getPreferenceManager()Landroid/preference/PreferenceManager;" deprecated="29"/> - <method name="getSharedPreferences()Landroid/content/SharedPreferences;" deprecated="29"/> - <method name="getShouldDisableView()Z" deprecated="29"/> - <method name="getSummary()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getTitle()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getTitleRes()I" since="14" deprecated="29"/> - <method name="getView(Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" deprecated="29"/> - <method name="getWidgetLayoutResource()I" deprecated="29"/> - <method name="hasKey()Z" deprecated="29"/> - <method name="isEnabled()Z" deprecated="29"/> - <method name="isIconSpaceReserved()Z" since="26" deprecated="29"/> - <method name="isPersistent()Z" deprecated="29"/> - <method name="isRecycleEnabled()Z" since="26" deprecated="29"/> - <method name="isSelectable()Z" deprecated="29"/> - <method name="isSingleLineTitle()Z" since="26" deprecated="29"/> - <method name="notifyChanged()V" deprecated="29"/> - <method name="notifyDependencyChange(Z)V" deprecated="29"/> - <method name="notifyHierarchyChanged()V" deprecated="29"/> - <method name="onAttachedToActivity()V" deprecated="29"/> - <method name="onAttachedToHierarchy(Landroid/preference/PreferenceManager;)V" deprecated="29"/> - <method name="onBindView(Landroid/view/View;)V" deprecated="29"/> - <method name="onClick()V" deprecated="29"/> - <method name="onCreateView(Landroid/view/ViewGroup;)Landroid/view/View;" deprecated="29"/> - <method name="onDependencyChanged(Landroid/preference/Preference;Z)V" deprecated="29"/> - <method name="onGetDefaultValue(Landroid/content/res/TypedArray;I)Ljava/lang/Object;" deprecated="29"/> - <method name="onParentChanged(Landroid/preference/Preference;Z)V" since="19" deprecated="29"/> - <method name="onPrepareForRemoval()V" deprecated="29"/> - <method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" deprecated="29"/> - <method name="onSaveInstanceState()Landroid/os/Parcelable;" deprecated="29"/> - <method name="onSetInitialValue(ZLjava/lang/Object;)V" deprecated="29"/> - <method name="peekExtras()Landroid/os/Bundle;" since="11" deprecated="29"/> - <method name="persistBoolean(Z)Z" deprecated="29"/> - <method name="persistFloat(F)Z" deprecated="29"/> - <method name="persistInt(I)Z" deprecated="29"/> - <method name="persistLong(J)Z" deprecated="29"/> - <method name="persistString(Ljava/lang/String;)Z" deprecated="29"/> - <method name="persistStringSet(Ljava/util/Set;)Z" since="24" deprecated="29"/> - <method name="restoreHierarchyState(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="saveHierarchyState(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="setDefaultValue(Ljava/lang/Object;)V" deprecated="29"/> - <method name="setDependency(Ljava/lang/String;)V" deprecated="29"/> - <method name="setEnabled(Z)V" deprecated="29"/> - <method name="setFragment(Ljava/lang/String;)V" since="11" deprecated="29"/> - <method name="setIcon(I)V" since="11" deprecated="29"/> - <method name="setIcon(Landroid/graphics/drawable/Drawable;)V" since="11" deprecated="29"/> - <method name="setIconSpaceReserved(Z)V" since="26" deprecated="29"/> - <method name="setIntent(Landroid/content/Intent;)V" deprecated="29"/> - <method name="setKey(Ljava/lang/String;)V" deprecated="29"/> - <method name="setLayoutResource(I)V" deprecated="29"/> - <method name="setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V" deprecated="29"/> - <method name="setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V" deprecated="29"/> - <method name="setOrder(I)V" deprecated="29"/> - <method name="setPersistent(Z)V" deprecated="29"/> - <method name="setPreferenceDataStore(Landroid/preference/PreferenceDataStore;)V" since="26" deprecated="29"/> - <method name="setRecycleEnabled(Z)V" since="26" deprecated="29"/> - <method name="setSelectable(Z)V" deprecated="29"/> - <method name="setShouldDisableView(Z)V" deprecated="29"/> - <method name="setSingleLineTitle(Z)V" since="26" deprecated="29"/> - <method name="setSummary(I)V" deprecated="29"/> - <method name="setSummary(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setTitle(I)V" deprecated="29"/> - <method name="setTitle(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setWidgetLayoutResource(I)V" deprecated="29"/> - <method name="shouldCommit()Z" deprecated="29"/> - <method name="shouldDisableDependents()Z" deprecated="29"/> - <method name="shouldPersist()Z" deprecated="29"/> - <field name="DEFAULT_ORDER" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="callChangeListener(Ljava/lang/Object;)Z"/> + <method name="compareTo(Landroid/preference/Preference;)I"/> + <method name="findPreferenceInHierarchy(Ljava/lang/String;)Landroid/preference/Preference;"/> + <method name="getContext()Landroid/content/Context;"/> + <method name="getDependency()Ljava/lang/String;"/> + <method name="getEditor()Landroid/content/SharedPreferences$Editor;"/> + <method name="getExtras()Landroid/os/Bundle;" since="11"/> + <method name="getFragment()Ljava/lang/String;" since="11"/> + <method name="getIcon()Landroid/graphics/drawable/Drawable;" since="11"/> + <method name="getIntent()Landroid/content/Intent;"/> + <method name="getKey()Ljava/lang/String;"/> + <method name="getLayoutResource()I"/> + <method name="getOnPreferenceChangeListener()Landroid/preference/Preference$OnPreferenceChangeListener;"/> + <method name="getOnPreferenceClickListener()Landroid/preference/Preference$OnPreferenceClickListener;"/> + <method name="getOrder()I"/> + <method name="getParent()Landroid/preference/PreferenceGroup;" since="26"/> + <method name="getPersistedBoolean(Z)Z"/> + <method name="getPersistedFloat(F)F"/> + <method name="getPersistedInt(I)I"/> + <method name="getPersistedLong(J)J"/> + <method name="getPersistedString(Ljava/lang/String;)Ljava/lang/String;"/> + <method name="getPersistedStringSet(Ljava/util/Set;)Ljava/util/Set;" since="24"/> + <method name="getPreferenceDataStore()Landroid/preference/PreferenceDataStore;" since="26"/> + <method name="getPreferenceManager()Landroid/preference/PreferenceManager;"/> + <method name="getSharedPreferences()Landroid/content/SharedPreferences;"/> + <method name="getShouldDisableView()Z"/> + <method name="getSummary()Ljava/lang/CharSequence;"/> + <method name="getTitle()Ljava/lang/CharSequence;"/> + <method name="getTitleRes()I" since="14"/> + <method name="getView(Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;"/> + <method name="getWidgetLayoutResource()I"/> + <method name="hasKey()Z"/> + <method name="isEnabled()Z"/> + <method name="isIconSpaceReserved()Z" since="26"/> + <method name="isPersistent()Z"/> + <method name="isRecycleEnabled()Z" since="26"/> + <method name="isSelectable()Z"/> + <method name="isSingleLineTitle()Z" since="26"/> + <method name="notifyChanged()V"/> + <method name="notifyDependencyChange(Z)V"/> + <method name="notifyHierarchyChanged()V"/> + <method name="onAttachedToActivity()V"/> + <method name="onAttachedToHierarchy(Landroid/preference/PreferenceManager;)V"/> + <method name="onBindView(Landroid/view/View;)V"/> + <method name="onClick()V"/> + <method name="onCreateView(Landroid/view/ViewGroup;)Landroid/view/View;"/> + <method name="onDependencyChanged(Landroid/preference/Preference;Z)V"/> + <method name="onGetDefaultValue(Landroid/content/res/TypedArray;I)Ljava/lang/Object;"/> + <method name="onParentChanged(Landroid/preference/Preference;Z)V" since="19"/> + <method name="onPrepareForRemoval()V"/> + <method name="onRestoreInstanceState(Landroid/os/Parcelable;)V"/> + <method name="onSaveInstanceState()Landroid/os/Parcelable;"/> + <method name="onSetInitialValue(ZLjava/lang/Object;)V"/> + <method name="peekExtras()Landroid/os/Bundle;" since="11"/> + <method name="persistBoolean(Z)Z"/> + <method name="persistFloat(F)Z"/> + <method name="persistInt(I)Z"/> + <method name="persistLong(J)Z"/> + <method name="persistString(Ljava/lang/String;)Z"/> + <method name="persistStringSet(Ljava/util/Set;)Z" since="24"/> + <method name="restoreHierarchyState(Landroid/os/Bundle;)V"/> + <method name="saveHierarchyState(Landroid/os/Bundle;)V"/> + <method name="setDefaultValue(Ljava/lang/Object;)V"/> + <method name="setDependency(Ljava/lang/String;)V"/> + <method name="setEnabled(Z)V"/> + <method name="setFragment(Ljava/lang/String;)V" since="11"/> + <method name="setIcon(I)V" since="11"/> + <method name="setIcon(Landroid/graphics/drawable/Drawable;)V" since="11"/> + <method name="setIconSpaceReserved(Z)V" since="26"/> + <method name="setIntent(Landroid/content/Intent;)V"/> + <method name="setKey(Ljava/lang/String;)V"/> + <method name="setLayoutResource(I)V"/> + <method name="setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V"/> + <method name="setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V"/> + <method name="setOrder(I)V"/> + <method name="setPersistent(Z)V"/> + <method name="setPreferenceDataStore(Landroid/preference/PreferenceDataStore;)V" since="26"/> + <method name="setRecycleEnabled(Z)V" since="26"/> + <method name="setSelectable(Z)V"/> + <method name="setShouldDisableView(Z)V"/> + <method name="setSingleLineTitle(Z)V" since="26"/> + <method name="setSummary(I)V"/> + <method name="setSummary(Ljava/lang/CharSequence;)V"/> + <method name="setTitle(I)V"/> + <method name="setTitle(Ljava/lang/CharSequence;)V"/> + <method name="setWidgetLayoutResource(I)V"/> + <method name="shouldCommit()Z"/> + <method name="shouldDisableDependents()Z"/> + <method name="shouldPersist()Z"/> + <field name="DEFAULT_ORDER"/> </class> - <class name="android/preference/Preference$BaseSavedState" since="1" deprecated="29"> + <class name="android/preference/Preference$BaseSavedState" since="1"> <extends name="android/view/AbsSavedState"/> - <method name="<init>(Landroid/os/Parcel;)V" deprecated="29"/> - <method name="<init>(Landroid/os/Parcelable;)V" deprecated="29"/> - <field name="CREATOR" deprecated="29"/> + <method name="<init>(Landroid/os/Parcel;)V"/> + <method name="<init>(Landroid/os/Parcelable;)V"/> + <field name="CREATOR"/> </class> - <class name="android/preference/Preference$OnPreferenceChangeListener" since="1" deprecated="29"> + <class name="android/preference/Preference$OnPreferenceChangeListener" since="1"> <extends name="java/lang/Object"/> - <method name="onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z" deprecated="29"/> + <method name="onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z"/> </class> - <class name="android/preference/Preference$OnPreferenceClickListener" since="1" deprecated="29"> + <class name="android/preference/Preference$OnPreferenceClickListener" since="1"> <extends name="java/lang/Object"/> - <method name="onPreferenceClick(Landroid/preference/Preference;)Z" deprecated="29"/> + <method name="onPreferenceClick(Landroid/preference/Preference;)Z"/> </class> - <class name="android/preference/PreferenceActivity" since="1" deprecated="29"> + <class name="android/preference/PreferenceActivity" since="1"> <extends name="android/app/ListActivity"/> <implements name="android/preference/PreferenceFragment$OnPreferenceStartFragmentCallback" since="11"/> - <method name="<init>()V" deprecated="29"/> - <method name="addPreferencesFromIntent(Landroid/content/Intent;)V" deprecated="15"/> - <method name="addPreferencesFromResource(I)V" deprecated="15"/> - <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" deprecated="15"/> - <method name="finishPreferencePanel(Landroid/app/Fragment;ILandroid/content/Intent;)V" since="11" deprecated="29"/> - <method name="getPreferenceManager()Landroid/preference/PreferenceManager;" deprecated="15"/> - <method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" deprecated="15"/> - <method name="hasHeaders()Z" since="11" deprecated="29"/> - <method name="invalidateHeaders()V" since="11" deprecated="29"/> - <method name="isMultiPane()Z" since="11" deprecated="29"/> - <method name="isValidFragment(Ljava/lang/String;)Z" since="19" deprecated="29"/> - <method name="loadHeadersFromResource(ILjava/util/List;)V" since="11" deprecated="29"/> - <method name="onBuildHeaders(Ljava/util/List;)V" since="11" deprecated="29"/> - <method name="onBuildStartFragmentIntent(Ljava/lang/String;Landroid/os/Bundle;II)Landroid/content/Intent;" since="14" deprecated="29"/> - <method name="onGetInitialHeader()Landroid/preference/PreferenceActivity$Header;" since="11" deprecated="29"/> - <method name="onGetNewHeader()Landroid/preference/PreferenceActivity$Header;" since="11" deprecated="29"/> - <method name="onHeaderClick(Landroid/preference/PreferenceActivity$Header;I)V" since="11" deprecated="29"/> - <method name="onIsHidingHeaders()Z" since="11" deprecated="29"/> - <method name="onIsMultiPane()Z" since="11" deprecated="29"/> - <method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" deprecated="15"/> - <method name="setListFooter(Landroid/view/View;)V" since="11" deprecated="29"/> - <method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" since="11" deprecated="29"/> - <method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" deprecated="15"/> - <method name="showBreadCrumbs(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" since="11" deprecated="29"/> - <method name="startPreferenceFragment(Landroid/app/Fragment;Z)V" since="11" deprecated="29"/> - <method name="startPreferencePanel(Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/CharSequence;Landroid/app/Fragment;I)V" since="11" deprecated="29"/> - <method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;I)V" since="11" deprecated="29"/> - <method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;III)V" since="14" deprecated="29"/> - <method name="switchToHeader(Landroid/preference/PreferenceActivity$Header;)V" since="11" deprecated="29"/> - <method name="switchToHeader(Ljava/lang/String;Landroid/os/Bundle;)V" since="11" deprecated="29"/> - <field name="EXTRA_NO_HEADERS" since="11" deprecated="29"/> - <field name="EXTRA_SHOW_FRAGMENT" since="11" deprecated="29"/> - <field name="EXTRA_SHOW_FRAGMENT_ARGUMENTS" since="11" deprecated="29"/> - <field name="EXTRA_SHOW_FRAGMENT_SHORT_TITLE" since="14" deprecated="29"/> - <field name="EXTRA_SHOW_FRAGMENT_TITLE" since="14" deprecated="29"/> - <field name="HEADER_ID_UNDEFINED" since="11" deprecated="29"/> + <method name="<init>()V"/> + <method name="addPreferencesFromIntent(Landroid/content/Intent;)V" deprecated="16"/> + <method name="addPreferencesFromResource(I)V" deprecated="16"/> + <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" deprecated="16"/> + <method name="finishPreferencePanel(Landroid/app/Fragment;ILandroid/content/Intent;)V" since="11"/> + <method name="getPreferenceManager()Landroid/preference/PreferenceManager;" deprecated="16"/> + <method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" deprecated="16"/> + <method name="hasHeaders()Z" since="11"/> + <method name="invalidateHeaders()V" since="11"/> + <method name="isMultiPane()Z" since="11"/> + <method name="isValidFragment(Ljava/lang/String;)Z" since="19"/> + <method name="loadHeadersFromResource(ILjava/util/List;)V" since="11"/> + <method name="onBuildHeaders(Ljava/util/List;)V" since="11"/> + <method name="onBuildStartFragmentIntent(Ljava/lang/String;Landroid/os/Bundle;II)Landroid/content/Intent;" since="14"/> + <method name="onGetInitialHeader()Landroid/preference/PreferenceActivity$Header;" since="11"/> + <method name="onGetNewHeader()Landroid/preference/PreferenceActivity$Header;" since="11"/> + <method name="onHeaderClick(Landroid/preference/PreferenceActivity$Header;I)V" since="11"/> + <method name="onIsHidingHeaders()Z" since="11"/> + <method name="onIsMultiPane()Z" since="11"/> + <method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" deprecated="16"/> + <method name="setListFooter(Landroid/view/View;)V" since="11"/> + <method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" since="11"/> + <method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" deprecated="16"/> + <method name="showBreadCrumbs(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" since="11"/> + <method name="startPreferenceFragment(Landroid/app/Fragment;Z)V" since="11"/> + <method name="startPreferencePanel(Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/CharSequence;Landroid/app/Fragment;I)V" since="11"/> + <method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;I)V" since="11"/> + <method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;III)V" since="14"/> + <method name="switchToHeader(Landroid/preference/PreferenceActivity$Header;)V" since="11"/> + <method name="switchToHeader(Ljava/lang/String;Landroid/os/Bundle;)V" since="11"/> + <field name="EXTRA_NO_HEADERS" since="11"/> + <field name="EXTRA_SHOW_FRAGMENT" since="11"/> + <field name="EXTRA_SHOW_FRAGMENT_ARGUMENTS" since="11"/> + <field name="EXTRA_SHOW_FRAGMENT_SHORT_TITLE" since="14"/> + <field name="EXTRA_SHOW_FRAGMENT_TITLE" since="14"/> + <field name="HEADER_ID_UNDEFINED" since="11"/> </class> - <class name="android/preference/PreferenceActivity$Header" since="11" deprecated="29"> + <class name="android/preference/PreferenceActivity$Header" since="11"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="<init>()V" deprecated="29"/> - <method name="getBreadCrumbShortTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getBreadCrumbTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getSummary(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" deprecated="29"/> - <method name="readFromParcel(Landroid/os/Parcel;)V" deprecated="29"/> - <field name="CREATOR" deprecated="29"/> - <field name="breadCrumbShortTitle" deprecated="29"/> - <field name="breadCrumbShortTitleRes" deprecated="29"/> - <field name="breadCrumbTitle" deprecated="29"/> - <field name="breadCrumbTitleRes" deprecated="29"/> - <field name="extras" deprecated="29"/> - <field name="fragment" deprecated="29"/> - <field name="fragmentArguments" deprecated="29"/> - <field name="iconRes" deprecated="29"/> - <field name="id" deprecated="29"/> - <field name="intent" deprecated="29"/> - <field name="summary" deprecated="29"/> - <field name="summaryRes" deprecated="29"/> - <field name="title" deprecated="29"/> - <field name="titleRes" deprecated="29"/> + <method name="<init>()V"/> + <method name="getBreadCrumbShortTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;"/> + <method name="getBreadCrumbTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;"/> + <method name="getSummary(Landroid/content/res/Resources;)Ljava/lang/CharSequence;"/> + <method name="getTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;"/> + <method name="readFromParcel(Landroid/os/Parcel;)V"/> + <field name="CREATOR"/> + <field name="breadCrumbShortTitle"/> + <field name="breadCrumbShortTitleRes"/> + <field name="breadCrumbTitle"/> + <field name="breadCrumbTitleRes"/> + <field name="extras"/> + <field name="fragment"/> + <field name="fragmentArguments"/> + <field name="iconRes"/> + <field name="id"/> + <field name="intent"/> + <field name="summary"/> + <field name="summaryRes"/> + <field name="title"/> + <field name="titleRes"/> </class> - <class name="android/preference/PreferenceCategory" since="1" deprecated="29"> + <class name="android/preference/PreferenceCategory" since="1"> <extends name="android/preference/PreferenceGroup"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> </class> - <class name="android/preference/PreferenceDataStore" since="26" deprecated="29"> + <class name="android/preference/PreferenceDataStore" since="26"> <extends name="java/lang/Object"/> - <method name="getBoolean(Ljava/lang/String;Z)Z" deprecated="29"/> - <method name="getFloat(Ljava/lang/String;F)F" deprecated="29"/> - <method name="getInt(Ljava/lang/String;I)I" deprecated="29"/> - <method name="getLong(Ljava/lang/String;J)J" deprecated="29"/> - <method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;" deprecated="29"/> - <method name="putBoolean(Ljava/lang/String;Z)V" deprecated="29"/> - <method name="putFloat(Ljava/lang/String;F)V" deprecated="29"/> - <method name="putInt(Ljava/lang/String;I)V" deprecated="29"/> - <method name="putLong(Ljava/lang/String;J)V" deprecated="29"/> - <method name="putString(Ljava/lang/String;Ljava/lang/String;)V" deprecated="29"/> - <method name="putStringSet(Ljava/lang/String;Ljava/util/Set;)V" deprecated="29"/> + <method name="getBoolean(Ljava/lang/String;Z)Z"/> + <method name="getFloat(Ljava/lang/String;F)F"/> + <method name="getInt(Ljava/lang/String;I)I"/> + <method name="getLong(Ljava/lang/String;J)J"/> + <method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> + <method name="getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;"/> + <method name="putBoolean(Ljava/lang/String;Z)V"/> + <method name="putFloat(Ljava/lang/String;F)V"/> + <method name="putInt(Ljava/lang/String;I)V"/> + <method name="putLong(Ljava/lang/String;J)V"/> + <method name="putString(Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="putStringSet(Ljava/lang/String;Ljava/util/Set;)V"/> </class> <class name="android/preference/PreferenceFragment" since="11" deprecated="28"> <extends name="android/app/Fragment"/> - <method name="<init>()V" deprecated="29"/> - <method name="addPreferencesFromIntent(Landroid/content/Intent;)V" deprecated="29"/> - <method name="addPreferencesFromResource(I)V" deprecated="29"/> - <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" deprecated="29"/> - <method name="getPreferenceManager()Landroid/preference/PreferenceManager;" deprecated="29"/> - <method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" deprecated="29"/> - <method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" deprecated="29"/> - <method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="addPreferencesFromIntent(Landroid/content/Intent;)V"/> + <method name="addPreferencesFromResource(I)V"/> + <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;"/> + <method name="getPreferenceManager()Landroid/preference/PreferenceManager;"/> + <method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;"/> + <method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z"/> + <method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V"/> </class> <class name="android/preference/PreferenceFragment$OnPreferenceStartFragmentCallback" since="11" deprecated="28"> <extends name="java/lang/Object"/> - <method name="onPreferenceStartFragment(Landroid/preference/PreferenceFragment;Landroid/preference/Preference;)Z" deprecated="29"/> + <method name="onPreferenceStartFragment(Landroid/preference/PreferenceFragment;Landroid/preference/Preference;)Z"/> </class> - <class name="android/preference/PreferenceGroup" since="1" deprecated="29"> + <class name="android/preference/PreferenceGroup" since="1"> <extends name="android/preference/Preference"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="addItemFromInflater(Landroid/preference/Preference;)V" deprecated="29"/> - <method name="addPreference(Landroid/preference/Preference;)Z" deprecated="29"/> - <method name="dispatchRestoreInstanceState(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="dispatchSaveInstanceState(Landroid/os/Bundle;)V" deprecated="29"/> - <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" deprecated="29"/> - <method name="getPreference(I)Landroid/preference/Preference;" deprecated="29"/> - <method name="getPreferenceCount()I" deprecated="29"/> - <method name="isOnSameScreenAsChildren()Z" deprecated="29"/> - <method name="isOrderingAsAdded()Z" deprecated="29"/> - <method name="onPrepareAddPreference(Landroid/preference/Preference;)Z" deprecated="29"/> - <method name="removeAll()V" deprecated="29"/> - <method name="removePreference(Landroid/preference/Preference;)Z" deprecated="29"/> - <method name="setOrderingAsAdded(Z)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="addItemFromInflater(Landroid/preference/Preference;)V"/> + <method name="addPreference(Landroid/preference/Preference;)Z"/> + <method name="dispatchRestoreInstanceState(Landroid/os/Bundle;)V"/> + <method name="dispatchSaveInstanceState(Landroid/os/Bundle;)V"/> + <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;"/> + <method name="getPreference(I)Landroid/preference/Preference;"/> + <method name="getPreferenceCount()I"/> + <method name="isOnSameScreenAsChildren()Z"/> + <method name="isOrderingAsAdded()Z"/> + <method name="onPrepareAddPreference(Landroid/preference/Preference;)Z"/> + <method name="removeAll()V"/> + <method name="removePreference(Landroid/preference/Preference;)Z"/> + <method name="setOrderingAsAdded(Z)V"/> </class> - <class name="android/preference/PreferenceManager" since="1" deprecated="29"> + <class name="android/preference/PreferenceManager" since="1"> <extends name="java/lang/Object"/> - <method name="createPreferenceScreen(Landroid/content/Context;)Landroid/preference/PreferenceScreen;" deprecated="29"/> - <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" deprecated="29"/> - <method name="getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;" deprecated="29"/> - <method name="getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String;" since="24" deprecated="29"/> - <method name="getPreferenceDataStore()Landroid/preference/PreferenceDataStore;" since="26" deprecated="29"/> - <method name="getSharedPreferences()Landroid/content/SharedPreferences;" deprecated="29"/> - <method name="getSharedPreferencesMode()I" deprecated="29"/> - <method name="getSharedPreferencesName()Ljava/lang/String;" deprecated="29"/> - <method name="isStorageDefault()Z" since="24" deprecated="29"/> - <method name="isStorageDeviceProtected()Z" since="24" deprecated="29"/> - <method name="setDefaultValues(Landroid/content/Context;IZ)V" deprecated="29"/> - <method name="setDefaultValues(Landroid/content/Context;Ljava/lang/String;IIZ)V" deprecated="29"/> - <method name="setPreferenceDataStore(Landroid/preference/PreferenceDataStore;)V" since="26" deprecated="29"/> - <method name="setSharedPreferencesMode(I)V" deprecated="29"/> - <method name="setSharedPreferencesName(Ljava/lang/String;)V" deprecated="29"/> - <method name="setStorageDefault()V" since="24" deprecated="29"/> - <method name="setStorageDeviceProtected()V" since="24" deprecated="29"/> - <field name="KEY_HAS_SET_DEFAULT_VALUES" deprecated="29"/> - <field name="METADATA_KEY_PREFERENCES" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> + <method name="createPreferenceScreen(Landroid/content/Context;)Landroid/preference/PreferenceScreen;"/> + <method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;"/> + <method name="getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;"/> + <method name="getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String;" since="24"/> + <method name="getPreferenceDataStore()Landroid/preference/PreferenceDataStore;" since="26"/> + <method name="getSharedPreferences()Landroid/content/SharedPreferences;"/> + <method name="getSharedPreferencesMode()I"/> + <method name="getSharedPreferencesName()Ljava/lang/String;"/> + <method name="isStorageDefault()Z" since="24"/> + <method name="isStorageDeviceProtected()Z" since="24"/> + <method name="setDefaultValues(Landroid/content/Context;IZ)V"/> + <method name="setDefaultValues(Landroid/content/Context;Ljava/lang/String;IIZ)V"/> + <method name="setPreferenceDataStore(Landroid/preference/PreferenceDataStore;)V" since="26"/> + <method name="setSharedPreferencesMode(I)V"/> + <method name="setSharedPreferencesName(Ljava/lang/String;)V"/> + <method name="setStorageDefault()V" since="24"/> + <method name="setStorageDeviceProtected()V" since="24"/> + <field name="KEY_HAS_SET_DEFAULT_VALUES"/> + <field name="METADATA_KEY_PREFERENCES"/> </class> - <class name="android/preference/PreferenceManager$OnActivityDestroyListener" since="1" deprecated="29"> + <class name="android/preference/PreferenceManager$OnActivityDestroyListener" since="1"> <extends name="java/lang/Object"/> - <method name="onActivityDestroy()V" deprecated="29"/> + <method name="onActivityDestroy()V"/> </class> - <class name="android/preference/PreferenceManager$OnActivityResultListener" since="1" deprecated="29"> + <class name="android/preference/PreferenceManager$OnActivityResultListener" since="1"> <extends name="java/lang/Object"/> - <method name="onActivityResult(IILandroid/content/Intent;)Z" deprecated="29"/> + <method name="onActivityResult(IILandroid/content/Intent;)Z"/> </class> - <class name="android/preference/PreferenceManager$OnActivityStopListener" since="1" deprecated="29"> + <class name="android/preference/PreferenceManager$OnActivityStopListener" since="1"> <extends name="java/lang/Object"/> - <method name="onActivityStop()V" deprecated="29"/> + <method name="onActivityStop()V"/> </class> - <class name="android/preference/PreferenceScreen" since="1" deprecated="29"> + <class name="android/preference/PreferenceScreen" since="1"> <extends name="android/preference/PreferenceGroup"/> <implements name="android/content/DialogInterface$OnDismissListener"/> <implements name="android/widget/AdapterView$OnItemClickListener"/> - <method name="bind(Landroid/widget/ListView;)V" deprecated="29"/> - <method name="getDialog()Landroid/app/Dialog;" deprecated="29"/> - <method name="getRootAdapter()Landroid/widget/ListAdapter;" deprecated="29"/> - <method name="onCreateRootAdapter()Landroid/widget/ListAdapter;" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" since="29"/> + <method name="bind(Landroid/widget/ListView;)V"/> + <method name="getDialog()Landroid/app/Dialog;"/> + <method name="getRootAdapter()Landroid/widget/ListAdapter;"/> + <method name="onCreateRootAdapter()Landroid/widget/ListAdapter;"/> </class> - <class name="android/preference/RingtonePreference" since="1" deprecated="29"> + <class name="android/preference/RingtonePreference" since="1"> <extends name="android/preference/Preference"/> <implements name="android/preference/PreferenceManager$OnActivityResultListener"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="getRingtoneType()I" deprecated="29"/> - <method name="getShowDefault()Z" deprecated="29"/> - <method name="getShowSilent()Z" deprecated="29"/> - <method name="onPrepareRingtonePickerIntent(Landroid/content/Intent;)V" deprecated="29"/> - <method name="onRestoreRingtone()Landroid/net/Uri;" deprecated="29"/> - <method name="onSaveRingtone(Landroid/net/Uri;)V" deprecated="29"/> - <method name="setRingtoneType(I)V" deprecated="29"/> - <method name="setShowDefault(Z)V" deprecated="29"/> - <method name="setShowSilent(Z)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="getRingtoneType()I"/> + <method name="getShowDefault()Z"/> + <method name="getShowSilent()Z"/> + <method name="onPrepareRingtonePickerIntent(Landroid/content/Intent;)V"/> + <method name="onRestoreRingtone()Landroid/net/Uri;"/> + <method name="onSaveRingtone(Landroid/net/Uri;)V"/> + <method name="setRingtoneType(I)V"/> + <method name="setShowDefault(Z)V"/> + <method name="setShowSilent(Z)V"/> </class> - <class name="android/preference/SwitchPreference" since="14" deprecated="29"> + <class name="android/preference/SwitchPreference" since="14"> <extends name="android/preference/TwoStatePreference"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="getSwitchTextOff()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getSwitchTextOn()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="setSwitchTextOff(I)V" deprecated="29"/> - <method name="setSwitchTextOff(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setSwitchTextOn(I)V" deprecated="29"/> - <method name="setSwitchTextOn(Ljava/lang/CharSequence;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="getSwitchTextOff()Ljava/lang/CharSequence;"/> + <method name="getSwitchTextOn()Ljava/lang/CharSequence;"/> + <method name="setSwitchTextOff(I)V"/> + <method name="setSwitchTextOff(Ljava/lang/CharSequence;)V"/> + <method name="setSwitchTextOn(I)V"/> + <method name="setSwitchTextOn(Ljava/lang/CharSequence;)V"/> </class> - <class name="android/preference/TwoStatePreference" since="14" deprecated="29"> + <class name="android/preference/TwoStatePreference" since="14"> <extends name="android/preference/Preference"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="getDisableDependentsState()Z" deprecated="29"/> - <method name="getSummaryOff()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getSummaryOn()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="isChecked()Z" deprecated="29"/> - <method name="setChecked(Z)V" deprecated="29"/> - <method name="setDisableDependentsState(Z)V" deprecated="29"/> - <method name="setSummaryOff(I)V" deprecated="29"/> - <method name="setSummaryOff(Ljava/lang/CharSequence;)V" deprecated="29"/> - <method name="setSummaryOn(I)V" deprecated="29"/> - <method name="setSummaryOn(Ljava/lang/CharSequence;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="getDisableDependentsState()Z"/> + <method name="getSummaryOff()Ljava/lang/CharSequence;"/> + <method name="getSummaryOn()Ljava/lang/CharSequence;"/> + <method name="isChecked()Z"/> + <method name="setChecked(Z)V"/> + <method name="setDisableDependentsState(Z)V"/> + <method name="setSummaryOff(I)V"/> + <method name="setSummaryOff(Ljava/lang/CharSequence;)V"/> + <method name="setSummaryOn(I)V"/> + <method name="setSummaryOn(Ljava/lang/CharSequence;)V"/> </class> <class name="android/print/PageRange" since="19"> <extends name="java/lang/Object"/> @@ -35520,6 +34154,7 @@ <class name="android/print/PrintAttributes" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getColorMode()I"/> <method name="getDuplexMode()I" since="23"/> <method name="getMediaSize()Landroid/print/PrintAttributes$MediaSize;"/> @@ -35664,12 +34299,14 @@ </class> <class name="android/print/PrintDocumentAdapter$LayoutResultCallback" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="onLayoutCancelled()V"/> <method name="onLayoutFailed(Ljava/lang/CharSequence;)V"/> <method name="onLayoutFinished(Landroid/print/PrintDocumentInfo;Z)V"/> </class> <class name="android/print/PrintDocumentAdapter$WriteResultCallback" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="onWriteCancelled()V"/> <method name="onWriteFailed(Ljava/lang/CharSequence;)V"/> <method name="onWriteFinished([Landroid/print/PageRange;)V"/> @@ -35677,6 +34314,7 @@ <class name="android/print/PrintDocumentInfo" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getContentType()I"/> <method name="getDataSize()J"/> <method name="getName()Ljava/lang/String;"/> @@ -35696,6 +34334,8 @@ </class> <class name="android/print/PrintJob" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/print/PrintJobInfo;Landroid/print/PrintManager;)V" since="29"/> <method name="cancel()V"/> <method name="getId()Landroid/print/PrintJobId;"/> <method name="getInfo()Landroid/print/PrintJobInfo;"/> @@ -35710,11 +34350,13 @@ <class name="android/print/PrintJobId" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> </class> <class name="android/print/PrintJobInfo" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getAdvancedIntOption(Ljava/lang/String;)I" since="26"/> <method name="getAdvancedStringOption(Ljava/lang/String;)Ljava/lang/String;" since="26"/> <method name="getAttributes()Landroid/print/PrintAttributes;"/> @@ -35747,12 +34389,14 @@ </class> <class name="android/print/PrintManager" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getPrintJobs()Ljava/util/List;"/> <method name="print(Ljava/lang/String;Landroid/print/PrintDocumentAdapter;Landroid/print/PrintAttributes;)Landroid/print/PrintJob;"/> </class> <class name="android/print/PrinterCapabilitiesInfo" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getColorModes()I"/> <method name="getDefaults()Landroid/print/PrintAttributes;"/> <method name="getDuplexModes()I" since="23"/> @@ -35774,12 +34418,16 @@ <class name="android/print/PrinterId" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getLocalId()Ljava/lang/String;"/> <field name="CREATOR"/> </class> <class name="android/print/PrinterInfo" since="19"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getCapabilities()Landroid/print/PrinterCapabilitiesInfo;"/> <method name="getDescription()Ljava/lang/String;"/> <method name="getId()Landroid/print/PrinterId;"/> @@ -35813,15 +34461,18 @@ </class> <class name="android/printservice/CustomPrinterIconCallback" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="onCustomPrinterIconLoaded(Landroid/graphics/drawable/Icon;)Z"/> </class> <class name="android/printservice/PrintDocument" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getData()Landroid/os/ParcelFileDescriptor;"/> <method name="getInfo()Landroid/print/PrintDocumentInfo;"/> </class> <class name="android/printservice/PrintJob" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="block(Ljava/lang/String;)Z"/> <method name="cancel()Z"/> <method name="complete()Z"/> @@ -35914,6 +34565,7 @@ </class> <class name="android/provider/BlockedNumberContract" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="canCurrentUserBlockNumbers(Landroid/content/Context;)Z"/> <method name="isBlocked(Landroid/content/Context;Ljava/lang/String;)Z"/> <method name="unblock(Landroid/content/Context;Ljava/lang/String;)I"/> @@ -35922,6 +34574,7 @@ </class> <class name="android/provider/BlockedNumberContract$BlockedNumbers" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="COLUMN_E164_NUMBER"/> <field name="COLUMN_ID"/> <field name="COLUMN_ORIGINAL_NUMBER"/> @@ -35984,15 +34637,14 @@ <method name="<init>()V"/> <field name="DATE"/> <field name="SEARCH"/> - <field name="URL" deprecated="15"/> + <field name="URL" deprecated="16"/> </class> <class name="android/provider/CalendarContract" since="14"> <extends name="java/lang/Object"/> - <method name="startViewCalendarEventInManagedProfile(Landroid/content/Context;JJJZI)Z" since="29"/> + <method name="<init>()V"/> <field name="ACCOUNT_TYPE_LOCAL"/> <field name="ACTION_EVENT_REMINDER"/> <field name="ACTION_HANDLE_CUSTOM_EVENT" since="16"/> - <field name="ACTION_VIEW_MANAGED_PROFILE_CALENDAR_EVENT" since="29"/> <field name="AUTHORITY"/> <field name="CALLER_IS_SYNCADAPTER"/> <field name="CONTENT_URI"/> @@ -36000,13 +34652,13 @@ <field name="EXTRA_EVENT_ALL_DAY"/> <field name="EXTRA_EVENT_BEGIN_TIME"/> <field name="EXTRA_EVENT_END_TIME"/> - <field name="EXTRA_EVENT_ID" since="29"/> </class> <class name="android/provider/CalendarContract$Attendees" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$AttendeesColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> + <method name="<init>()V"/> <method name="query(Landroid/content/ContentResolver;J[Ljava/lang/String;)Landroid/database/Cursor;"/> <field name="CONTENT_URI"/> </class> @@ -36041,6 +34693,7 @@ <implements name="android/provider/CalendarContract$CalendarAlertsColumns"/> <implements name="android/provider/CalendarContract$CalendarColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="CONTENT_URI_BY_INSTANCE"/> </class> @@ -36063,6 +34716,7 @@ <class name="android/provider/CalendarContract$CalendarCache" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/CalendarContract$CalendarCacheColumns"/> + <method name="<init>()V"/> <field name="KEY_TIMEZONE_INSTANCES"/> <field name="KEY_TIMEZONE_INSTANCES_PREVIOUS"/> <field name="KEY_TIMEZONE_TYPE"/> @@ -36107,6 +34761,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$CalendarColumns"/> <implements name="android/provider/CalendarContract$SyncColumns"/> + <method name="<init>()V"/> <method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;"/> <field name="CONTENT_URI"/> </class> @@ -36128,15 +34783,16 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$CalendarColumns"/> <implements name="android/provider/CalendarContract$SyncColumns"/> + <method name="<init>()V"/> <field name="CALENDAR_LOCATION"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> - <field name="ENTERPRISE_CONTENT_URI" since="29"/> <field name="NAME"/> </class> <class name="android/provider/CalendarContract$Colors" since="15"> <extends name="java/lang/Object"/> <implements name="android/provider/CalendarContract$ColorsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> </class> <class name="android/provider/CalendarContract$ColorsColumns" since="15"> @@ -36151,6 +34807,7 @@ <class name="android/provider/CalendarContract$EventDays" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/CalendarContract$EventDaysColumns"/> + <method name="<init>()V"/> <method name="query(Landroid/content/ContentResolver;II[Ljava/lang/String;)Landroid/database/Cursor;"/> <field name="CONTENT_URI"/> </class> @@ -36165,9 +34822,9 @@ <implements name="android/provider/CalendarContract$CalendarColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> <implements name="android/provider/CalendarContract$SyncColumns"/> + <method name="<init>()V"/> <field name="CONTENT_EXCEPTION_URI"/> <field name="CONTENT_URI"/> - <field name="ENTERPRISE_CONTENT_URI" since="29"/> </class> <class name="android/provider/CalendarContract$EventsColumns" since="14"> <extends name="java/lang/Object"/> @@ -36236,6 +34893,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> <implements name="android/provider/CalendarContract$SyncColumns"/> + <method name="<init>()V"/> <method name="newEntityIterator(Landroid/database/Cursor;Landroid/content/ContentProviderClient;)Landroid/content/EntityIterator;"/> <method name="newEntityIterator(Landroid/database/Cursor;Landroid/content/ContentResolver;)Landroid/content/EntityIterator;"/> <field name="CONTENT_URI"/> @@ -36245,6 +34903,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> <implements name="android/provider/CalendarContract$ExtendedPropertiesColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> </class> <class name="android/provider/CalendarContract$ExtendedPropertiesColumns" since="14"> @@ -36258,6 +34917,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$CalendarColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> + <method name="<init>()V"/> <method name="query(Landroid/content/ContentResolver;[Ljava/lang/String;JJ)Landroid/database/Cursor;"/> <method name="query(Landroid/content/ContentResolver;[Ljava/lang/String;JJLjava/lang/String;)Landroid/database/Cursor;"/> <field name="BEGIN"/> @@ -36268,10 +34928,6 @@ <field name="END"/> <field name="END_DAY"/> <field name="END_MINUTE"/> - <field name="ENTERPRISE_CONTENT_BY_DAY_URI" since="29"/> - <field name="ENTERPRISE_CONTENT_SEARCH_BY_DAY_URI" since="29"/> - <field name="ENTERPRISE_CONTENT_SEARCH_URI" since="29"/> - <field name="ENTERPRISE_CONTENT_URI" since="29"/> <field name="EVENT_ID"/> <field name="START_DAY"/> <field name="START_MINUTE"/> @@ -36281,6 +34937,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/CalendarContract$EventsColumns"/> <implements name="android/provider/CalendarContract$RemindersColumns"/> + <method name="<init>()V"/> <method name="query(Landroid/content/ContentResolver;J[Ljava/lang/String;)Landroid/database/Cursor;"/> <field name="CONTENT_URI"/> </class> @@ -36310,6 +34967,7 @@ <class name="android/provider/CalendarContract$SyncState" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/SyncStateContract$Columns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> </class> <class name="android/provider/CallLog" since="1"> @@ -36325,15 +34983,6 @@ <method name="getLastOutgoingCall(Landroid/content/Context;)Ljava/lang/String;" since="8"/> <field name="ANSWERED_EXTERNALLY_TYPE" since="25"/> <field name="BLOCKED_TYPE" since="24"/> - <field name="BLOCK_REASON" since="29"/> - <field name="BLOCK_REASON_BLOCKED_NUMBER" since="29"/> - <field name="BLOCK_REASON_CALL_SCREENING_SERVICE" since="29"/> - <field name="BLOCK_REASON_DIRECT_TO_VOICEMAIL" since="29"/> - <field name="BLOCK_REASON_NOT_BLOCKED" since="29"/> - <field name="BLOCK_REASON_NOT_IN_CONTACTS" since="29"/> - <field name="BLOCK_REASON_PAY_PHONE" since="29"/> - <field name="BLOCK_REASON_RESTRICTED_NUMBER" since="29"/> - <field name="BLOCK_REASON_UNKNOWN_NUMBER" since="29"/> <field name="CACHED_FORMATTED_NUMBER" since="21"/> <field name="CACHED_LOOKUP_URI" since="21"/> <field name="CACHED_MATCHED_NUMBER" since="21"/> @@ -36343,8 +34992,6 @@ <field name="CACHED_NUMBER_TYPE"/> <field name="CACHED_PHOTO_ID" since="21"/> <field name="CACHED_PHOTO_URI" since="23"/> - <field name="CALL_SCREENING_APP_NAME" since="29"/> - <field name="CALL_SCREENING_COMPONENT_NAME" since="29"/> <field name="CONTENT_FILTER_URI"/> <field name="CONTENT_ITEM_TYPE"/> <field name="CONTENT_TYPE"/> @@ -36389,185 +35036,191 @@ </class> <class name="android/provider/Contacts" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="AUTHORITY" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="KIND_EMAIL" deprecated="15"/> - <field name="KIND_IM" deprecated="15"/> - <field name="KIND_ORGANIZATION" deprecated="15"/> - <field name="KIND_PHONE" deprecated="15"/> - <field name="KIND_POSTAL" deprecated="15"/> + <method name="<init>()V"/> + <field name="AUTHORITY" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="KIND_EMAIL" deprecated="16"/> + <field name="KIND_IM" deprecated="16"/> + <field name="KIND_ORGANIZATION" deprecated="16"/> + <field name="KIND_PHONE" deprecated="16"/> + <field name="KIND_POSTAL" deprecated="16"/> </class> <class name="android/provider/Contacts$ContactMethods" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$ContactMethodsColumns"/> <implements name="android/provider/Contacts$PeopleColumns"/> - <method name="addPostalLocation(Landroid/content/Context;JDD)V" deprecated="15"/> - <method name="decodeImProtocol(Ljava/lang/String;)Ljava/lang/Object;" deprecated="15"/> - <method name="encodeCustomImProtocol(Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> - <method name="encodePredefinedImProtocol(I)Ljava/lang/String;" deprecated="15"/> - <method name="getDisplayLabel(Landroid/content/Context;IILjava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="15"/> - <field name="CONTENT_EMAIL_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_EMAIL_TYPE" deprecated="15"/> - <field name="CONTENT_EMAIL_URI" deprecated="15"/> - <field name="CONTENT_IM_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_POSTAL_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_POSTAL_TYPE" deprecated="15"/> - <field name="CONTENT_TYPE" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> - <field name="POSTAL_LOCATION_LATITUDE" deprecated="15"/> - <field name="POSTAL_LOCATION_LONGITUDE" deprecated="15"/> - <field name="PROTOCOL_AIM" deprecated="15"/> - <field name="PROTOCOL_GOOGLE_TALK" deprecated="15"/> - <field name="PROTOCOL_ICQ" deprecated="15"/> - <field name="PROTOCOL_JABBER" deprecated="15"/> - <field name="PROTOCOL_MSN" deprecated="15"/> - <field name="PROTOCOL_QQ" deprecated="15"/> - <field name="PROTOCOL_SKYPE" deprecated="15"/> - <field name="PROTOCOL_YAHOO" deprecated="15"/> + <method name="<init>()V"/> + <method name="addPostalLocation(Landroid/content/Context;JDD)V" deprecated="16"/> + <method name="decodeImProtocol(Ljava/lang/String;)Ljava/lang/Object;" deprecated="16"/> + <method name="encodeCustomImProtocol(Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> + <method name="encodePredefinedImProtocol(I)Ljava/lang/String;" deprecated="16"/> + <method name="getDisplayLabel(Landroid/content/Context;IILjava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="16"/> + <field name="CONTENT_EMAIL_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_EMAIL_TYPE" deprecated="16"/> + <field name="CONTENT_EMAIL_URI" deprecated="16"/> + <field name="CONTENT_IM_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_POSTAL_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_POSTAL_TYPE" deprecated="16"/> + <field name="CONTENT_TYPE" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> + <field name="POSTAL_LOCATION_LATITUDE" deprecated="16"/> + <field name="POSTAL_LOCATION_LONGITUDE" deprecated="16"/> + <field name="PROTOCOL_AIM" deprecated="16"/> + <field name="PROTOCOL_GOOGLE_TALK" deprecated="16"/> + <field name="PROTOCOL_ICQ" deprecated="16"/> + <field name="PROTOCOL_JABBER" deprecated="16"/> + <field name="PROTOCOL_MSN" deprecated="16"/> + <field name="PROTOCOL_QQ" deprecated="16"/> + <field name="PROTOCOL_SKYPE" deprecated="16"/> + <field name="PROTOCOL_YAHOO" deprecated="16"/> </class> <class name="android/provider/Contacts$ContactMethodsColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="AUX_DATA" deprecated="15"/> - <field name="DATA" deprecated="15"/> - <field name="ISPRIMARY" deprecated="15"/> - <field name="KIND" deprecated="15"/> - <field name="LABEL" deprecated="15"/> - <field name="TYPE" deprecated="15"/> - <field name="TYPE_CUSTOM" deprecated="15"/> - <field name="TYPE_HOME" deprecated="15"/> - <field name="TYPE_OTHER" deprecated="15"/> - <field name="TYPE_WORK" deprecated="15"/> + <field name="AUX_DATA" deprecated="16"/> + <field name="DATA" deprecated="16"/> + <field name="ISPRIMARY" deprecated="16"/> + <field name="KIND" deprecated="16"/> + <field name="LABEL" deprecated="16"/> + <field name="TYPE" deprecated="16"/> + <field name="TYPE_CUSTOM" deprecated="16"/> + <field name="TYPE_HOME" deprecated="16"/> + <field name="TYPE_OTHER" deprecated="16"/> + <field name="TYPE_WORK" deprecated="16"/> </class> <class name="android/provider/Contacts$Extensions" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$ExtensionsColumns"/> - <field name="CONTENT_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_TYPE" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> + <method name="<init>()V"/> + <field name="CONTENT_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_TYPE" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> </class> <class name="android/provider/Contacts$ExtensionsColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="NAME" deprecated="15"/> - <field name="VALUE" deprecated="15"/> + <field name="NAME" deprecated="16"/> + <field name="VALUE" deprecated="16"/> </class> <class name="android/provider/Contacts$GroupMembership" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$GroupsColumns"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="CONTENT_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_TYPE" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="GROUP_ID" deprecated="15"/> - <field name="GROUP_SYNC_ACCOUNT" deprecated="15"/> - <field name="GROUP_SYNC_ACCOUNT_TYPE" since="5" deprecated="15"/> - <field name="GROUP_SYNC_ID" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> - <field name="RAW_CONTENT_URI" deprecated="15"/> + <method name="<init>()V"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="CONTENT_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_TYPE" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="GROUP_ID" deprecated="16"/> + <field name="GROUP_SYNC_ACCOUNT" deprecated="16"/> + <field name="GROUP_SYNC_ACCOUNT_TYPE" since="5" deprecated="16"/> + <field name="GROUP_SYNC_ID" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> + <field name="RAW_CONTENT_URI" deprecated="16"/> </class> <class name="android/provider/Contacts$Groups" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$GroupsColumns"/> - <field name="CONTENT_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_TYPE" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="DELETED_CONTENT_URI" deprecated="15"/> - <field name="GROUP_ANDROID_STARRED" deprecated="15"/> - <field name="GROUP_MY_CONTACTS" deprecated="15"/> + <method name="<init>()V"/> + <field name="CONTENT_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_TYPE" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="DELETED_CONTENT_URI" deprecated="16"/> + <field name="GROUP_ANDROID_STARRED" deprecated="16"/> + <field name="GROUP_MY_CONTACTS" deprecated="16"/> </class> <class name="android/provider/Contacts$GroupsColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="NAME" deprecated="15"/> - <field name="NOTES" deprecated="15"/> - <field name="SHOULD_SYNC" deprecated="15"/> - <field name="SYSTEM_ID" deprecated="15"/> + <field name="NAME" deprecated="16"/> + <field name="NOTES" deprecated="16"/> + <field name="SHOULD_SYNC" deprecated="16"/> + <field name="SYSTEM_ID" deprecated="16"/> </class> <class name="android/provider/Contacts$Intents" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="15"/> - <field name="ATTACH_IMAGE" deprecated="15"/> - <field name="EXTRA_CREATE_DESCRIPTION" since="3" deprecated="15"/> - <field name="EXTRA_FORCE_CREATE" since="3" deprecated="15"/> - <field name="SEARCH_SUGGESTION_CLICKED" deprecated="15"/> - <field name="SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED" deprecated="15"/> - <field name="SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED" deprecated="15"/> - <field name="SHOW_OR_CREATE_CONTACT" since="3" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> + <field name="ATTACH_IMAGE" deprecated="16"/> + <field name="EXTRA_CREATE_DESCRIPTION" since="3" deprecated="16"/> + <field name="EXTRA_FORCE_CREATE" since="3" deprecated="16"/> + <field name="SEARCH_SUGGESTION_CLICKED" deprecated="16"/> + <field name="SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED" deprecated="16"/> + <field name="SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED" deprecated="16"/> + <field name="SHOW_OR_CREATE_CONTACT" since="3" deprecated="16"/> </class> <class name="android/provider/Contacts$Intents$Insert" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="15"/> - <field name="ACTION" deprecated="15"/> - <field name="COMPANY" deprecated="15"/> - <field name="EMAIL" deprecated="15"/> - <field name="EMAIL_ISPRIMARY" deprecated="15"/> - <field name="EMAIL_TYPE" deprecated="15"/> - <field name="FULL_MODE" deprecated="15"/> - <field name="IM_HANDLE" deprecated="15"/> - <field name="IM_ISPRIMARY" deprecated="15"/> - <field name="IM_PROTOCOL" deprecated="15"/> - <field name="JOB_TITLE" deprecated="15"/> - <field name="NAME" deprecated="15"/> - <field name="NOTES" deprecated="15"/> - <field name="PHONE" deprecated="15"/> - <field name="PHONETIC_NAME" since="3" deprecated="15"/> - <field name="PHONE_ISPRIMARY" deprecated="15"/> - <field name="PHONE_TYPE" deprecated="15"/> - <field name="POSTAL" deprecated="15"/> - <field name="POSTAL_ISPRIMARY" deprecated="15"/> - <field name="POSTAL_TYPE" deprecated="15"/> - <field name="SECONDARY_EMAIL" since="3" deprecated="15"/> - <field name="SECONDARY_EMAIL_TYPE" since="3" deprecated="15"/> - <field name="SECONDARY_PHONE" since="3" deprecated="15"/> - <field name="SECONDARY_PHONE_TYPE" since="3" deprecated="15"/> - <field name="TERTIARY_EMAIL" since="3" deprecated="15"/> - <field name="TERTIARY_EMAIL_TYPE" since="3" deprecated="15"/> - <field name="TERTIARY_PHONE" since="3" deprecated="15"/> - <field name="TERTIARY_PHONE_TYPE" since="3" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> + <field name="ACTION" deprecated="16"/> + <field name="COMPANY" deprecated="16"/> + <field name="EMAIL" deprecated="16"/> + <field name="EMAIL_ISPRIMARY" deprecated="16"/> + <field name="EMAIL_TYPE" deprecated="16"/> + <field name="FULL_MODE" deprecated="16"/> + <field name="IM_HANDLE" deprecated="16"/> + <field name="IM_ISPRIMARY" deprecated="16"/> + <field name="IM_PROTOCOL" deprecated="16"/> + <field name="JOB_TITLE" deprecated="16"/> + <field name="NAME" deprecated="16"/> + <field name="NOTES" deprecated="16"/> + <field name="PHONE" deprecated="16"/> + <field name="PHONETIC_NAME" since="3" deprecated="16"/> + <field name="PHONE_ISPRIMARY" deprecated="16"/> + <field name="PHONE_TYPE" deprecated="16"/> + <field name="POSTAL" deprecated="16"/> + <field name="POSTAL_ISPRIMARY" deprecated="16"/> + <field name="POSTAL_TYPE" deprecated="16"/> + <field name="SECONDARY_EMAIL" since="3" deprecated="16"/> + <field name="SECONDARY_EMAIL_TYPE" since="3" deprecated="16"/> + <field name="SECONDARY_PHONE" since="3" deprecated="16"/> + <field name="SECONDARY_PHONE_TYPE" since="3" deprecated="16"/> + <field name="TERTIARY_EMAIL" since="3" deprecated="16"/> + <field name="TERTIARY_EMAIL_TYPE" since="3" deprecated="16"/> + <field name="TERTIARY_PHONE" since="3" deprecated="16"/> + <field name="TERTIARY_PHONE_TYPE" since="3" deprecated="16"/> </class> <class name="android/provider/Contacts$Intents$UI" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="15"/> - <field name="FILTER_CONTACTS_ACTION" deprecated="15"/> - <field name="FILTER_TEXT_EXTRA_KEY" deprecated="15"/> - <field name="GROUP_NAME_EXTRA_KEY" deprecated="15"/> - <field name="LIST_ALL_CONTACTS_ACTION" deprecated="15"/> - <field name="LIST_CONTACTS_WITH_PHONES_ACTION" deprecated="15"/> - <field name="LIST_DEFAULT" deprecated="15"/> - <field name="LIST_FREQUENT_ACTION" deprecated="15"/> - <field name="LIST_GROUP_ACTION" deprecated="15"/> - <field name="LIST_STARRED_ACTION" deprecated="15"/> - <field name="LIST_STREQUENT_ACTION" deprecated="15"/> - <field name="TITLE_EXTRA_KEY" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> + <field name="FILTER_CONTACTS_ACTION" deprecated="16"/> + <field name="FILTER_TEXT_EXTRA_KEY" deprecated="16"/> + <field name="GROUP_NAME_EXTRA_KEY" deprecated="16"/> + <field name="LIST_ALL_CONTACTS_ACTION" deprecated="16"/> + <field name="LIST_CONTACTS_WITH_PHONES_ACTION" deprecated="16"/> + <field name="LIST_DEFAULT" deprecated="16"/> + <field name="LIST_FREQUENT_ACTION" deprecated="16"/> + <field name="LIST_GROUP_ACTION" deprecated="16"/> + <field name="LIST_STARRED_ACTION" deprecated="16"/> + <field name="LIST_STREQUENT_ACTION" deprecated="16"/> + <field name="TITLE_EXTRA_KEY" deprecated="16"/> </class> <class name="android/provider/Contacts$OrganizationColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="COMPANY" deprecated="15"/> - <field name="ISPRIMARY" deprecated="15"/> - <field name="LABEL" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> - <field name="TITLE" deprecated="15"/> - <field name="TYPE" deprecated="15"/> - <field name="TYPE_CUSTOM" deprecated="15"/> - <field name="TYPE_OTHER" deprecated="15"/> - <field name="TYPE_WORK" deprecated="15"/> + <field name="COMPANY" deprecated="16"/> + <field name="ISPRIMARY" deprecated="16"/> + <field name="LABEL" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> + <field name="TITLE" deprecated="16"/> + <field name="TYPE" deprecated="16"/> + <field name="TYPE_CUSTOM" deprecated="16"/> + <field name="TYPE_OTHER" deprecated="16"/> + <field name="TYPE_WORK" deprecated="16"/> </class> <class name="android/provider/Contacts$Organizations" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$OrganizationColumns"/> - <method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="15"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> + <method name="<init>()V"/> + <method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="16"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> </class> <class name="android/provider/Contacts$People" since="1" deprecated="5"> <extends name="java/lang/Object"/> @@ -36575,141 +35228,148 @@ <implements name="android/provider/Contacts$PeopleColumns"/> <implements name="android/provider/Contacts$PhonesColumns"/> <implements name="android/provider/Contacts$PresenceColumns"/> - <method name="addToGroup(Landroid/content/ContentResolver;JJ)Landroid/net/Uri;" deprecated="15"/> - <method name="addToGroup(Landroid/content/ContentResolver;JLjava/lang/String;)Landroid/net/Uri;" deprecated="15"/> - <method name="addToMyContactsGroup(Landroid/content/ContentResolver;J)Landroid/net/Uri;" deprecated="15"/> - <method name="createPersonInMyContactsGroup(Landroid/content/ContentResolver;Landroid/content/ContentValues;)Landroid/net/Uri;" deprecated="15"/> - <method name="loadContactPhoto(Landroid/content/Context;Landroid/net/Uri;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" deprecated="15"/> - <method name="markAsContacted(Landroid/content/ContentResolver;J)V" deprecated="15"/> - <method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;" deprecated="15"/> - <method name="queryGroups(Landroid/content/ContentResolver;J)Landroid/database/Cursor;" deprecated="15"/> - <method name="setPhotoData(Landroid/content/ContentResolver;Landroid/net/Uri;[B)V" deprecated="15"/> - <field name="CONTENT_FILTER_URI" deprecated="15"/> - <field name="CONTENT_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_TYPE" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="DELETED_CONTENT_URI" deprecated="15"/> - <field name="PRIMARY_EMAIL_ID" deprecated="15"/> - <field name="PRIMARY_ORGANIZATION_ID" deprecated="15"/> - <field name="PRIMARY_PHONE_ID" deprecated="15"/> + <method name="<init>()V" deprecated="29"/> + <method name="addToGroup(Landroid/content/ContentResolver;JJ)Landroid/net/Uri;" deprecated="16"/> + <method name="addToGroup(Landroid/content/ContentResolver;JLjava/lang/String;)Landroid/net/Uri;" deprecated="16"/> + <method name="addToMyContactsGroup(Landroid/content/ContentResolver;J)Landroid/net/Uri;" deprecated="16"/> + <method name="createPersonInMyContactsGroup(Landroid/content/ContentResolver;Landroid/content/ContentValues;)Landroid/net/Uri;" deprecated="16"/> + <method name="loadContactPhoto(Landroid/content/Context;Landroid/net/Uri;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" deprecated="16"/> + <method name="markAsContacted(Landroid/content/ContentResolver;J)V" deprecated="16"/> + <method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;" deprecated="16"/> + <method name="queryGroups(Landroid/content/ContentResolver;J)Landroid/database/Cursor;" deprecated="16"/> + <method name="setPhotoData(Landroid/content/ContentResolver;Landroid/net/Uri;[B)V" deprecated="16"/> + <field name="CONTENT_FILTER_URI" deprecated="16"/> + <field name="CONTENT_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_TYPE" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="DELETED_CONTENT_URI" deprecated="16"/> + <field name="PRIMARY_EMAIL_ID" deprecated="16"/> + <field name="PRIMARY_ORGANIZATION_ID" deprecated="16"/> + <field name="PRIMARY_PHONE_ID" deprecated="16"/> </class> <class name="android/provider/Contacts$People$ContactMethods" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$ContactMethodsColumns"/> <implements name="android/provider/Contacts$PeopleColumns"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> + <method name="<init>()V"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> </class> <class name="android/provider/Contacts$People$Extensions" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$ExtensionsColumns"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> + <method name="<init>()V" deprecated="29"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> </class> <class name="android/provider/Contacts$People$Phones" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$PeopleColumns"/> <implements name="android/provider/Contacts$PhonesColumns"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> + <method name="<init>()V"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> </class> <class name="android/provider/Contacts$PeopleColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="CUSTOM_RINGTONE" deprecated="15"/> - <field name="DISPLAY_NAME" deprecated="15"/> - <field name="LAST_TIME_CONTACTED" deprecated="15"/> - <field name="NAME" deprecated="15"/> - <field name="NOTES" deprecated="15"/> - <field name="PHONETIC_NAME" since="3" deprecated="15"/> - <field name="PHOTO_VERSION" deprecated="15"/> - <field name="SEND_TO_VOICEMAIL" deprecated="15"/> - <field name="STARRED" deprecated="15"/> - <field name="TIMES_CONTACTED" deprecated="15"/> + <field name="CUSTOM_RINGTONE" deprecated="16"/> + <field name="DISPLAY_NAME" deprecated="16"/> + <field name="LAST_TIME_CONTACTED" deprecated="16"/> + <field name="NAME" deprecated="16"/> + <field name="NOTES" deprecated="16"/> + <field name="PHONETIC_NAME" since="3" deprecated="16"/> + <field name="PHOTO_VERSION" deprecated="16"/> + <field name="SEND_TO_VOICEMAIL" deprecated="16"/> + <field name="STARRED" deprecated="16"/> + <field name="TIMES_CONTACTED" deprecated="16"/> </class> <class name="android/provider/Contacts$Phones" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$PeopleColumns"/> <implements name="android/provider/Contacts$PhonesColumns"/> - <method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="15"/> - <method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="15"/> - <field name="CONTENT_FILTER_URL" deprecated="15"/> - <field name="CONTENT_ITEM_TYPE" deprecated="15"/> - <field name="CONTENT_TYPE" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> + <method name="<init>()V"/> + <method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="16"/> + <method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" deprecated="16"/> + <field name="CONTENT_FILTER_URL" deprecated="16"/> + <field name="CONTENT_ITEM_TYPE" deprecated="16"/> + <field name="CONTENT_TYPE" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> </class> <class name="android/provider/Contacts$PhonesColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="ISPRIMARY" deprecated="15"/> - <field name="LABEL" deprecated="15"/> - <field name="NUMBER" deprecated="15"/> - <field name="NUMBER_KEY" deprecated="15"/> - <field name="TYPE" deprecated="15"/> - <field name="TYPE_CUSTOM" deprecated="15"/> - <field name="TYPE_FAX_HOME" deprecated="15"/> - <field name="TYPE_FAX_WORK" deprecated="15"/> - <field name="TYPE_HOME" deprecated="15"/> - <field name="TYPE_MOBILE" deprecated="15"/> - <field name="TYPE_OTHER" deprecated="15"/> - <field name="TYPE_PAGER" deprecated="15"/> - <field name="TYPE_WORK" deprecated="15"/> + <field name="ISPRIMARY" deprecated="16"/> + <field name="LABEL" deprecated="16"/> + <field name="NUMBER" deprecated="16"/> + <field name="NUMBER_KEY" deprecated="16"/> + <field name="TYPE" deprecated="16"/> + <field name="TYPE_CUSTOM" deprecated="16"/> + <field name="TYPE_FAX_HOME" deprecated="16"/> + <field name="TYPE_FAX_WORK" deprecated="16"/> + <field name="TYPE_HOME" deprecated="16"/> + <field name="TYPE_MOBILE" deprecated="16"/> + <field name="TYPE_OTHER" deprecated="16"/> + <field name="TYPE_PAGER" deprecated="16"/> + <field name="TYPE_WORK" deprecated="16"/> </class> <class name="android/provider/Contacts$Photos" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$PhotosColumns"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> + <method name="<init>()V"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> </class> <class name="android/provider/Contacts$PhotosColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="DATA" deprecated="15"/> - <field name="DOWNLOAD_REQUIRED" deprecated="15"/> - <field name="EXISTS_ON_SERVER" deprecated="15"/> - <field name="LOCAL_VERSION" deprecated="15"/> - <field name="PERSON_ID" deprecated="15"/> - <field name="SYNC_ERROR" deprecated="15"/> + <field name="DATA" deprecated="16"/> + <field name="DOWNLOAD_REQUIRED" deprecated="16"/> + <field name="EXISTS_ON_SERVER" deprecated="16"/> + <field name="LOCAL_VERSION" deprecated="16"/> + <field name="PERSON_ID" deprecated="16"/> + <field name="SYNC_ERROR" deprecated="16"/> </class> <class name="android/provider/Contacts$PresenceColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="AVAILABLE" since="8" deprecated="29"/> - <field name="AWAY" since="8" deprecated="29"/> - <field name="DO_NOT_DISTURB" since="8" deprecated="29"/> - <field name="IDLE" since="8" deprecated="29"/> - <field name="IM_ACCOUNT" deprecated="15"/> - <field name="IM_HANDLE" deprecated="15"/> - <field name="IM_PROTOCOL" deprecated="15"/> - <field name="INVISIBLE" since="8" deprecated="29"/> - <field name="OFFLINE" since="8" deprecated="29"/> - <field name="PRESENCE_CUSTOM_STATUS" since="8" deprecated="29"/> - <field name="PRESENCE_STATUS" since="8" deprecated="29"/> - <field name="PRIORITY" since="8" deprecated="29"/> + <field name="AVAILABLE" since="8"/> + <field name="AWAY" since="8"/> + <field name="DO_NOT_DISTURB" since="8"/> + <field name="IDLE" since="8"/> + <field name="IM_ACCOUNT" deprecated="16"/> + <field name="IM_HANDLE" deprecated="16"/> + <field name="IM_PROTOCOL" deprecated="16"/> + <field name="INVISIBLE" since="8"/> + <field name="OFFLINE" since="8"/> + <field name="PRESENCE_CUSTOM_STATUS" since="8"/> + <field name="PRESENCE_STATUS" since="8"/> + <field name="PRIORITY" since="8"/> </class> <class name="android/provider/Contacts$Settings" since="1" deprecated="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Contacts$SettingsColumns"/> - <method name="getSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> - <method name="setSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="15"/> - <field name="CONTENT_DIRECTORY" deprecated="15"/> - <field name="CONTENT_URI" deprecated="15"/> - <field name="DEFAULT_SORT_ORDER" deprecated="15"/> - <field name="SYNC_EVERYTHING" deprecated="15"/> + <method name="<init>()V"/> + <method name="getSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> + <method name="setSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="16"/> + <field name="CONTENT_DIRECTORY" deprecated="16"/> + <field name="CONTENT_URI" deprecated="16"/> + <field name="DEFAULT_SORT_ORDER" deprecated="16"/> + <field name="SYNC_EVERYTHING" deprecated="16"/> </class> <class name="android/provider/Contacts$SettingsColumns" since="1" deprecated="5"> <extends name="java/lang/Object"/> - <field name="KEY" deprecated="15"/> - <field name="VALUE" deprecated="15"/> - <field name="_SYNC_ACCOUNT" deprecated="15"/> - <field name="_SYNC_ACCOUNT_TYPE" since="5" deprecated="15"/> + <field name="KEY" deprecated="16"/> + <field name="VALUE" deprecated="16"/> + <field name="_SYNC_ACCOUNT" deprecated="16"/> + <field name="_SYNC_ACCOUNT_TYPE" since="5" deprecated="16"/> </class> <class name="android/provider/ContactsContract" since="5"> <extends name="java/lang/Object"/> @@ -36730,6 +35390,7 @@ <class name="android/provider/ContactsContract$AggregationExceptions" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="CONTENT_TYPE"/> <field name="CONTENT_URI"/> @@ -36749,6 +35410,7 @@ </class> <class name="android/provider/ContactsContract$CommonDataKinds" since="5"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/provider/ContactsContract$CommonDataKinds$BaseTypes" since="5"> <extends name="java/lang/Object"/> @@ -36789,6 +35451,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="getTypeLabelResource(I)I"/> <field name="ADDRESS" since="11"/> @@ -36812,6 +35475,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" since="21"/> <method name="getTypeResource(Ljava/lang/Integer;)I"/> <field name="CONTENT_ITEM_TYPE"/> @@ -36826,6 +35490,7 @@ <class name="android/provider/ContactsContract$CommonDataKinds$GroupMembership" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> <field name="EXTRA_ADDRESS_BOOK_INDEX_COUNTS" since="21"/> @@ -36836,6 +35501,7 @@ <class name="android/provider/ContactsContract$CommonDataKinds$Identity" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> <field name="EXTRA_ADDRESS_BOOK_INDEX_COUNTS" since="21"/> @@ -36847,6 +35513,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getProtocolLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="getProtocolLabelResource(I)I"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> @@ -36875,6 +35542,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> <field name="EXTRA_ADDRESS_BOOK_INDEX_COUNTS" since="21"/> @@ -36883,13 +35551,14 @@ <field name="TYPE_DEFAULT"/> <field name="TYPE_INITIALS"/> <field name="TYPE_MAIDEN_NAME" since="9"/> - <field name="TYPE_MAINDEN_NAME" deprecated="15"/> + <field name="TYPE_MAINDEN_NAME" deprecated="16"/> <field name="TYPE_OTHER_NAME"/> <field name="TYPE_SHORT_NAME"/> </class> <class name="android/provider/ContactsContract$CommonDataKinds$Note" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> <field name="EXTRA_ADDRESS_BOOK_INDEX_COUNTS" since="21"/> @@ -36900,6 +35569,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="getTypeLabelResource(I)I"/> <field name="COMPANY"/> @@ -36921,6 +35591,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="getTypeLabelResource(I)I"/> <field name="CONTENT_FILTER_URI"/> @@ -36959,6 +35630,7 @@ <class name="android/provider/ContactsContract$CommonDataKinds$Photo" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> <field name="EXTRA_ADDRESS_BOOK_INDEX_COUNTS" since="21"/> @@ -36970,6 +35642,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" since="11"/> <method name="getTypeLabelResource(I)I" since="11"/> <field name="CONTENT_ITEM_TYPE"/> @@ -36996,6 +35669,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="getTypeLabelResource(I)I"/> <field name="CONTENT_ITEM_TYPE"/> @@ -37010,6 +35684,7 @@ <class name="android/provider/ContactsContract$CommonDataKinds$StructuredName" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="DISPLAY_NAME"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> @@ -37030,6 +35705,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="getTypeLabelResource(I)I"/> <field name="CITY"/> @@ -37054,6 +35730,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="EXTRA_ADDRESS_BOOK_INDEX" since="21"/> <field name="EXTRA_ADDRESS_BOOK_INDEX_COUNTS" since="21"/> @@ -37080,11 +35757,11 @@ <class name="android/provider/ContactsContract$ContactOptionsColumns" since="5"> <extends name="java/lang/Object"/> <field name="CUSTOM_RINGTONE"/> - <field name="LAST_TIME_CONTACTED" deprecated="29"/> + <field name="LAST_TIME_CONTACTED"/> <field name="PINNED" since="21"/> <field name="SEND_TO_VOICEMAIL"/> <field name="STARRED"/> - <field name="TIMES_CONTACTED" deprecated="29"/> + <field name="TIMES_CONTACTED"/> </class> <class name="android/provider/ContactsContract$ContactStatusColumns" since="5"> <extends name="java/lang/Object"/> @@ -37103,6 +35780,7 @@ <implements name="android/provider/ContactsContract$ContactOptionsColumns"/> <implements name="android/provider/ContactsContract$ContactStatusColumns"/> <implements name="android/provider/ContactsContract$ContactsColumns"/> + <method name="<init>()V"/> <method name="getLookupUri(JLjava/lang/String;)Landroid/net/Uri;"/> <method name="getLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;"/> <method name="isEnterpriseContactId(J)Z" since="21"/> @@ -37111,7 +35789,7 @@ <method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;"/> <method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;Z)Ljava/io/InputStream;" since="14"/> <field name="CONTENT_FILTER_URI"/> - <field name="CONTENT_FREQUENT_URI" since="21" deprecated="29"/> + <field name="CONTENT_FREQUENT_URI" since="21"/> <field name="CONTENT_GROUP_URI"/> <field name="CONTENT_ITEM_TYPE"/> <field name="CONTENT_LOOKUP_URI"/> @@ -37134,6 +35812,7 @@ <implements name="android/provider/ContactsContract$ContactOptionsColumns" since="11"/> <implements name="android/provider/ContactsContract$ContactStatusColumns" since="11"/> <implements name="android/provider/ContactsContract$ContactsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> </class> <class name="android/provider/ContactsContract$Contacts$AggregationSuggestions$Builder" since="23"> @@ -37148,6 +35827,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$DataColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> </class> <class name="android/provider/ContactsContract$Contacts$Entity" since="11"> @@ -37163,6 +35843,7 @@ <implements name="android/provider/ContactsContract$RawContactsColumns"/> <implements name="android/provider/ContactsContract$StatusColumns"/> <implements name="android/provider/ContactsContract$SyncColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> <field name="DATA_ID"/> <field name="RAW_CONTACT_ID"/> @@ -37172,6 +35853,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$DataColumns" removed="11"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins" since="11"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> <field name="DISPLAY_PHOTO" since="14"/> <field name="PHOTO" since="11"/> @@ -37180,6 +35862,7 @@ <class name="android/provider/ContactsContract$Contacts$StreamItems" since="15" deprecated="21" removed="23"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$StreamItemsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY" deprecated="21"/> </class> <class name="android/provider/ContactsContract$ContactsColumns" since="5"> @@ -37200,6 +35883,7 @@ <class name="android/provider/ContactsContract$Data" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DataColumnsWithJoins"/> + <method name="<init>()V"/> <method name="getContactLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;"/> <field name="CONTENT_TYPE"/> <field name="CONTENT_URI"/> @@ -37253,24 +35937,25 @@ <implements name="android/provider/ContactsContract$RawContactsColumns"/> <implements name="android/provider/ContactsContract$StatusColumns"/> </class> - <class name="android/provider/ContactsContract$DataUsageFeedback" since="14" deprecated="29"> + <class name="android/provider/ContactsContract$DataUsageFeedback" since="14"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <field name="DELETE_USAGE_URI" since="16" deprecated="29"/> - <field name="FEEDBACK_URI" deprecated="29"/> - <field name="USAGE_TYPE" deprecated="29"/> - <field name="USAGE_TYPE_CALL" deprecated="29"/> - <field name="USAGE_TYPE_LONG_TEXT" deprecated="29"/> - <field name="USAGE_TYPE_SHORT_TEXT" deprecated="29"/> + <method name="<init>()V"/> + <field name="DELETE_USAGE_URI" since="16"/> + <field name="FEEDBACK_URI"/> + <field name="USAGE_TYPE"/> + <field name="USAGE_TYPE_CALL"/> + <field name="USAGE_TYPE_LONG_TEXT"/> + <field name="USAGE_TYPE_SHORT_TEXT"/> </class> <class name="android/provider/ContactsContract$DataUsageStatColumns" since="18"> <extends name="java/lang/Object"/> - <field name="LAST_TIME_USED" deprecated="29"/> - <field name="TIMES_USED" deprecated="29"/> + <field name="LAST_TIME_USED"/> + <field name="TIMES_USED"/> </class> <class name="android/provider/ContactsContract$DeletedContacts" since="18"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$DeletedContactsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DAYS_KEPT_MILLISECONDS"/> </class> @@ -37282,6 +35967,7 @@ <class name="android/provider/ContactsContract$Directory" since="11"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <method name="isEnterpriseDirectoryId(J)Z" since="24"/> <method name="isRemoteDirectoryId(J)Z" since="24"/> <method name="notifyDirectoryChange(Landroid/content/ContentResolver;)V"/> @@ -37326,6 +36012,7 @@ </class> <class name="android/provider/ContactsContract$DisplayPhoto" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CONTENT_MAX_DIMENSIONS_URI"/> <field name="CONTENT_URI"/> <field name="DISPLAY_MAX_DIM"/> @@ -37345,6 +36032,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$GroupsColumns"/> <implements name="android/provider/ContactsContract$SyncColumns"/> + <method name="<init>()V"/> <method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" since="8"/> <field name="CONTENT_ITEM_TYPE"/> <field name="CONTENT_SUMMARY_URI"/> @@ -37428,6 +36116,7 @@ <implements name="android/provider/ContactsContract$ContactOptionsColumns"/> <implements name="android/provider/ContactsContract$ContactsColumns"/> <implements name="android/provider/ContactsContract$PhoneLookupColumns"/> + <method name="<init>()V"/> <field name="CONTENT_FILTER_URI"/> <field name="ENTERPRISE_CONTENT_FILTER_URI" since="21"/> <field name="QUERY_PARAMETER_SIP_ADDRESS" since="21"/> @@ -37458,7 +36147,7 @@ </class> <class name="android/provider/ContactsContract$Presence" since="5" deprecated="5"> <extends name="android/provider/ContactsContract$StatusUpdates"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> </class> <class name="android/provider/ContactsContract$PresenceColumns" since="5"> <extends name="java/lang/Object"/> @@ -37475,6 +36164,7 @@ <implements name="android/provider/ContactsContract$ContactOptionsColumns"/> <implements name="android/provider/ContactsContract$ContactStatusColumns"/> <implements name="android/provider/ContactsContract$ContactsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_RAW_CONTACTS_URI"/> <field name="CONTENT_URI"/> <field name="CONTENT_VCARD_URI"/> @@ -37483,6 +36173,7 @@ <class name="android/provider/ContactsContract$ProfileSyncState" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/SyncStateContract$Columns"/> + <method name="<init>()V"/> <method name="get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B"/> <method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;"/> <method name="newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;"/> @@ -37492,6 +36183,7 @@ </class> <class name="android/provider/ContactsContract$ProviderStatus" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CONTENT_TYPE"/> <field name="CONTENT_URI"/> <field name="DATABASE_CREATION_TIMESTAMP" since="26"/> @@ -37522,11 +36214,12 @@ <implements name="android/provider/ContactsContract$ContactOptionsColumns"/> <implements name="android/provider/ContactsContract$RawContactsColumns"/> <implements name="android/provider/ContactsContract$SyncColumns"/> + <method name="<init>()V"/> <method name="getContactLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;"/> <method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" since="8"/> <field name="AGGREGATION_MODE_DEFAULT"/> <field name="AGGREGATION_MODE_DISABLED"/> - <field name="AGGREGATION_MODE_IMMEDIATE" deprecated="15"/> + <field name="AGGREGATION_MODE_IMMEDIATE" deprecated="16"/> <field name="AGGREGATION_MODE_SUSPENDED"/> <field name="CONTENT_ITEM_TYPE"/> <field name="CONTENT_TYPE"/> @@ -37536,16 +36229,19 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$DataColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> </class> <class name="android/provider/ContactsContract$RawContacts$DisplayPhoto" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> </class> <class name="android/provider/ContactsContract$RawContacts$Entity" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$DataColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY"/> <field name="DATA_ID"/> </class> @@ -37553,6 +36249,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$StreamItemsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY" deprecated="21"/> </class> <class name="android/provider/ContactsContract$RawContactsColumns" since="5"> @@ -37572,6 +36269,7 @@ <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$DataColumns"/> <implements name="android/provider/ContactsContract$RawContactsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_TYPE"/> <field name="CONTENT_URI"/> <field name="DATA_ID"/> @@ -37586,6 +36284,7 @@ <class name="android/provider/ContactsContract$Settings" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$SettingsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE"/> <field name="CONTENT_TYPE"/> <field name="CONTENT_URI"/> @@ -37614,8 +36313,8 @@ <field name="INVISIBLE" since="8"/> <field name="OFFLINE" since="8"/> <field name="PRESENCE"/> - <field name="PRESENCE_CUSTOM_STATUS" since="8" deprecated="15"/> - <field name="PRESENCE_STATUS" since="8" deprecated="15"/> + <field name="PRESENCE_CUSTOM_STATUS" since="8" deprecated="16"/> + <field name="PRESENCE_STATUS" since="8" deprecated="16"/> <field name="STATUS"/> <field name="STATUS_ICON"/> <field name="STATUS_LABEL"/> @@ -37626,6 +36325,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/ContactsContract$PresenceColumns"/> <implements name="android/provider/ContactsContract$StatusColumns"/> + <method name="<init>()V"/> <method name="getPresenceIconResourceId(I)I"/> <method name="getPresencePrecedence(I)I"/> <field name="CONTENT_ITEM_TYPE"/> @@ -37637,6 +36337,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$StreamItemPhotosColumns"/> + <method name="<init>()V"/> <field name="PHOTO" deprecated="21"/> </class> <class name="android/provider/ContactsContract$StreamItemPhotosColumns" since="15" deprecated="21" removed="23"> @@ -37654,6 +36355,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$StreamItemsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_ITEM_TYPE" deprecated="21"/> <field name="CONTENT_LIMIT_URI" deprecated="21"/> <field name="CONTENT_PHOTO_URI" deprecated="21"/> @@ -37665,6 +36367,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/ContactsContract$StreamItemPhotosColumns"/> + <method name="<init>()V"/> <field name="CONTENT_DIRECTORY" deprecated="21"/> <field name="CONTENT_ITEM_TYPE" deprecated="21"/> <field name="CONTENT_TYPE" deprecated="21"/> @@ -37701,6 +36404,7 @@ <class name="android/provider/ContactsContract$SyncState" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/SyncStateContract$Columns"/> + <method name="<init>()V"/> <method name="get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B"/> <method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;"/> <method name="newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;"/> @@ -37710,6 +36414,7 @@ </class> <class name="android/provider/DocumentsContract" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="buildChildDocumentsUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;"/> <method name="buildChildDocumentsUriUsingTree(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" since="21"/> <method name="buildDocumentUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;"/> @@ -37726,15 +36431,11 @@ <method name="ejectRoot(Landroid/content/ContentResolver;Landroid/net/Uri;)V" since="26"/> <method name="findDocumentPath(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/provider/DocumentsContract$Path;" since="26"/> <method name="getDocumentId(Landroid/net/Uri;)Ljava/lang/String;"/> - <method name="getDocumentMetadata(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/os/Bundle;" since="29"/> <method name="getDocumentThumbnail(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/graphics/Point;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;"/> <method name="getRootId(Landroid/net/Uri;)Ljava/lang/String;"/> <method name="getSearchDocumentsQuery(Landroid/net/Uri;)Ljava/lang/String;"/> <method name="getTreeDocumentId(Landroid/net/Uri;)Ljava/lang/String;" since="21"/> - <method name="isChildDocument(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/net/Uri;)Z" since="29"/> <method name="isDocumentUri(Landroid/content/Context;Landroid/net/Uri;)Z"/> - <method name="isRootUri(Landroid/content/Context;Landroid/net/Uri;)Z" since="29"/> - <method name="isRootsUri(Landroid/content/Context;Landroid/net/Uri;)Z" since="29"/> <method name="isTreeUri(Landroid/net/Uri;)Z" since="24"/> <method name="moveDocument(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/net/Uri;Landroid/net/Uri;)Landroid/net/Uri;" since="24"/> <method name="removeDocument(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/net/Uri;)Z" since="24"/> @@ -37747,19 +36448,11 @@ <field name="EXTRA_LOADING"/> <field name="EXTRA_ORIENTATION" since="24"/> <field name="EXTRA_PROMPT" since="23"/> - <field name="METADATA_EXIF" since="29"/> - <field name="METADATA_TREE_COUNT" since="29"/> - <field name="METADATA_TREE_SIZE" since="29"/> - <field name="METADATA_TYPES" since="29"/> <field name="PROVIDER_INTERFACE"/> - <field name="QUERY_ARG_DISPLAY_NAME" since="29"/> - <field name="QUERY_ARG_EXCLUDE_MEDIA" since="29"/> - <field name="QUERY_ARG_FILE_SIZE_OVER" since="29"/> - <field name="QUERY_ARG_LAST_MODIFIED_AFTER" since="29"/> - <field name="QUERY_ARG_MIME_TYPES" since="29"/> </class> <class name="android/provider/DocumentsContract$Document" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="COLUMN_DISPLAY_NAME"/> <field name="COLUMN_DOCUMENT_ID"/> <field name="COLUMN_FLAGS"/> @@ -37771,10 +36464,8 @@ <field name="FLAG_DIR_PREFERS_GRID"/> <field name="FLAG_DIR_PREFERS_LAST_MODIFIED"/> <field name="FLAG_DIR_SUPPORTS_CREATE"/> - <field name="FLAG_PARTIAL" since="29"/> <field name="FLAG_SUPPORTS_COPY" since="24"/> <field name="FLAG_SUPPORTS_DELETE"/> - <field name="FLAG_SUPPORTS_METADATA" since="29"/> <field name="FLAG_SUPPORTS_MOVE" since="24"/> <field name="FLAG_SUPPORTS_REMOVE" since="24"/> <field name="FLAG_SUPPORTS_RENAME" since="21"/> @@ -37795,17 +36486,16 @@ </class> <class name="android/provider/DocumentsContract$Root" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="COLUMN_AVAILABLE_BYTES"/> <field name="COLUMN_CAPACITY_BYTES" since="24"/> <field name="COLUMN_DOCUMENT_ID"/> <field name="COLUMN_FLAGS"/> <field name="COLUMN_ICON"/> <field name="COLUMN_MIME_TYPES"/> - <field name="COLUMN_QUERY_ARGS" since="29"/> <field name="COLUMN_ROOT_ID"/> <field name="COLUMN_SUMMARY"/> <field name="COLUMN_TITLE"/> - <field name="FLAG_EMPTY" since="29"/> <field name="FLAG_LOCAL_ONLY"/> <field name="FLAG_SUPPORTS_CREATE"/> <field name="FLAG_SUPPORTS_EJECT" since="26"/> @@ -37823,7 +36513,6 @@ <method name="deleteDocument(Ljava/lang/String;)V"/> <method name="ejectRoot(Ljava/lang/String;)V" since="26"/> <method name="findDocumentPath(Ljava/lang/String;Ljava/lang/String;)Landroid/provider/DocumentsContract$Path;" since="26"/> - <method name="getDocumentMetadata(Ljava/lang/String;)Landroid/os/Bundle;" since="29"/> <method name="getDocumentStreamTypes(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" since="24"/> <method name="getDocumentType(Ljava/lang/String;)Ljava/lang/String;"/> <method name="isChildDocument(Ljava/lang/String;Ljava/lang/String;)Z" since="21"/> @@ -37835,10 +36524,8 @@ <method name="queryChildDocuments(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;"/> <method name="queryDocument(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;"/> <method name="queryRecentDocuments(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;"/> - <method name="queryRecentDocuments(Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="29"/> <method name="queryRoots([Ljava/lang/String;)Landroid/database/Cursor;"/> <method name="querySearchDocuments(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;"/> - <method name="querySearchDocuments(Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)Landroid/database/Cursor;" since="29"/> <method name="removeDocument(Ljava/lang/String;Ljava/lang/String;)V" since="24"/> <method name="renameDocument(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="21"/> <method name="revokeDocumentPermission(Ljava/lang/String;)V" since="21"/> @@ -37854,6 +36541,7 @@ </class> <class name="android/provider/FontsContract" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="buildTypeface(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/provider/FontsContract$FontInfo;)Landroid/graphics/Typeface;"/> <method name="fetchFonts(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/provider/FontRequest;)Landroid/provider/FontsContract$FontFamilyResult;"/> <method name="requestFonts(Landroid/content/Context;Landroid/provider/FontRequest;Landroid/os/Handler;Landroid/os/CancellationSignal;Landroid/provider/FontsContract$FontRequestCallback;)V"/> @@ -37861,6 +36549,7 @@ <class name="android/provider/FontsContract$Columns" since="26"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <field name="FILE_ID"/> <field name="ITALIC"/> <field name="RESULT_CODE"/> @@ -37874,6 +36563,8 @@ </class> <class name="android/provider/FontsContract$FontFamilyResult" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I[Landroid/provider/FontsContract$FontInfo;)V" since="29"/> <method name="getFonts()[Landroid/provider/FontsContract$FontInfo;"/> <method name="getStatusCode()I"/> <field name="STATUS_OK"/> @@ -37883,6 +36574,8 @@ </class> <class name="android/provider/FontsContract$FontInfo" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/net/Uri;I[Landroid/graphics/fonts/FontVariationAxis;IZI)V" since="29"/> <method name="getAxes()[Landroid/graphics/fonts/FontVariationAxis;"/> <method name="getResultCode()I"/> <method name="getTtcIndex()I"/> @@ -37905,40 +36598,31 @@ <class name="android/provider/LiveFolders" since="3" deprecated="14"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <field name="ACTION_CREATE_LIVE_FOLDER" deprecated="29"/> - <field name="DESCRIPTION" deprecated="29"/> - <field name="DISPLAY_MODE_GRID" deprecated="29"/> - <field name="DISPLAY_MODE_LIST" deprecated="29"/> - <field name="EXTRA_LIVE_FOLDER_BASE_INTENT" deprecated="29"/> - <field name="EXTRA_LIVE_FOLDER_DISPLAY_MODE" deprecated="29"/> - <field name="EXTRA_LIVE_FOLDER_ICON" deprecated="29"/> - <field name="EXTRA_LIVE_FOLDER_NAME" deprecated="29"/> - <field name="ICON_BITMAP" deprecated="29"/> - <field name="ICON_PACKAGE" deprecated="29"/> - <field name="ICON_RESOURCE" deprecated="29"/> - <field name="INTENT" deprecated="29"/> - <field name="NAME" deprecated="29"/> + <method name="<init>()V"/> + <field name="ACTION_CREATE_LIVE_FOLDER"/> + <field name="DESCRIPTION"/> + <field name="DISPLAY_MODE_GRID"/> + <field name="DISPLAY_MODE_LIST"/> + <field name="EXTRA_LIVE_FOLDER_BASE_INTENT"/> + <field name="EXTRA_LIVE_FOLDER_DISPLAY_MODE"/> + <field name="EXTRA_LIVE_FOLDER_ICON"/> + <field name="EXTRA_LIVE_FOLDER_NAME"/> + <field name="ICON_BITMAP"/> + <field name="ICON_PACKAGE"/> + <field name="ICON_RESOURCE"/> + <field name="INTENT"/> + <field name="NAME"/> </class> <class name="android/provider/MediaStore" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="getDocumentUri(Landroid/content/Context;Landroid/net/Uri;)Landroid/net/Uri;" since="26"/> - <method name="getExternalVolumeNames(Landroid/content/Context;)Ljava/util/Set;" since="29"/> <method name="getMediaScannerUri()Landroid/net/Uri;"/> - <method name="getMediaUri(Landroid/content/Context;Landroid/net/Uri;)Landroid/net/Uri;" since="29"/> <method name="getVersion(Landroid/content/Context;)Ljava/lang/String;" since="12"/> - <method name="getVersion(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;" since="29"/> - <method name="getVolumeName(Landroid/net/Uri;)Ljava/lang/String;" since="29"/> - <method name="setIncludePending(Landroid/net/Uri;)Landroid/net/Uri;" since="29"/> - <method name="setRequireOriginal(Landroid/net/Uri;)Landroid/net/Uri;" since="29"/> <field name="ACTION_IMAGE_CAPTURE" since="3"/> <field name="ACTION_IMAGE_CAPTURE_SECURE" since="17"/> - <field name="ACTION_REVIEW" since="29"/> - <field name="ACTION_REVIEW_SECURE" since="29"/> <field name="ACTION_VIDEO_CAPTURE" since="3"/> <field name="AUTHORITY"/> - <field name="AUTHORITY_URI" since="29"/> - <field name="EXTRA_BRIGHTNESS" since="29"/> <field name="EXTRA_DURATION_LIMIT" since="8"/> <field name="EXTRA_FINISH_ON_COMPLETION" since="3"/> <field name="EXTRA_FULL_SCREEN" since="8"/> @@ -37956,7 +36640,7 @@ <field name="EXTRA_VIDEO_QUALITY" since="3"/> <field name="INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH" since="9"/> <field name="INTENT_ACTION_MEDIA_SEARCH" since="3"/> - <field name="INTENT_ACTION_MUSIC_PLAYER" since="8" deprecated="15"/> + <field name="INTENT_ACTION_MUSIC_PLAYER" since="8" deprecated="16"/> <field name="INTENT_ACTION_STILL_IMAGE_CAMERA" since="3"/> <field name="INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" since="17"/> <field name="INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" since="17"/> @@ -37966,9 +36650,6 @@ <field name="MEDIA_SCANNER_VOLUME"/> <field name="META_DATA_STILL_IMAGE_CAMERA_PREWARM_SERVICE" since="23"/> <field name="UNKNOWN_STRING" since="8"/> - <field name="VOLUME_EXTERNAL" since="29"/> - <field name="VOLUME_EXTERNAL_PRIMARY" since="29"/> - <field name="VOLUME_INTERNAL" since="29"/> </class> <class name="android/provider/MediaStore$Audio" since="1"> <extends name="java/lang/Object"/> @@ -37978,11 +36659,10 @@ <class name="android/provider/MediaStore$Audio$AlbumColumns" since="1"> <extends name="java/lang/Object"/> <field name="ALBUM"/> - <field name="ALBUM_ART" deprecated="29"/> + <field name="ALBUM_ART"/> <field name="ALBUM_ID"/> <field name="ALBUM_KEY"/> <field name="ARTIST"/> - <field name="ARTIST_ID" since="29"/> <field name="FIRST_YEAR"/> <field name="LAST_YEAR"/> <field name="NUMBER_OF_SONGS"/> @@ -38037,9 +36717,8 @@ <field name="ARTIST_KEY"/> <field name="BOOKMARK" since="8"/> <field name="COMPOSER"/> - <field name="DURATION" removed="29"/> + <field name="DURATION"/> <field name="IS_ALARM"/> - <field name="IS_AUDIOBOOK" since="29"/> <field name="IS_MUSIC"/> <field name="IS_NOTIFICATION"/> <field name="IS_PODCAST" since="8"/> @@ -38080,7 +36759,7 @@ <implements name="android/provider/MediaStore$Audio$AudioColumns"/> <method name="<init>()V"/> <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;"/> - <method name="getContentUriForPath(Ljava/lang/String;)Landroid/net/Uri;" deprecated="29"/> + <method name="getContentUriForPath(Ljava/lang/String;)Landroid/net/Uri;"/> <field name="CONTENT_TYPE"/> <field name="DEFAULT_SORT_ORDER"/> <field name="ENTRY_CONTENT_TYPE" since="21"/> @@ -38116,29 +36795,16 @@ </class> <class name="android/provider/MediaStore$Audio$PlaylistsColumns" since="1"> <extends name="java/lang/Object"/> - <field name="DATA" deprecated="29"/> + <field name="DATA"/> <field name="DATE_ADDED"/> <field name="DATE_MODIFIED"/> <field name="NAME"/> </class> <class name="android/provider/MediaStore$Audio$Radio" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ENTRY_CONTENT_TYPE"/> </class> - <class name="android/provider/MediaStore$DownloadColumns" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/provider/MediaStore$MediaColumns"/> - <field name="DOWNLOAD_URI"/> - <field name="REFERER_URI"/> - </class> - <class name="android/provider/MediaStore$Downloads" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/provider/MediaStore$DownloadColumns"/> - <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;"/> - <field name="CONTENT_TYPE"/> - <field name="EXTERNAL_CONTENT_URI"/> - <field name="INTERNAL_CONTENT_URI"/> - </class> <class name="android/provider/MediaStore$Files" since="11"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -38165,88 +36831,75 @@ <class name="android/provider/MediaStore$Images$ImageColumns" since="1"> <extends name="java/lang/Object"/> <implements name="android/provider/MediaStore$MediaColumns"/> - <field name="BUCKET_DISPLAY_NAME" removed="29"/> - <field name="BUCKET_ID" removed="29"/> - <field name="DATE_TAKEN" removed="29"/> + <field name="BUCKET_DISPLAY_NAME"/> + <field name="BUCKET_ID"/> + <field name="DATE_TAKEN"/> <field name="DESCRIPTION"/> <field name="IS_PRIVATE"/> - <field name="LATITUDE" deprecated="29"/> - <field name="LONGITUDE" deprecated="29"/> - <field name="MINI_THUMB_MAGIC" deprecated="29"/> - <field name="ORIENTATION" removed="29"/> - <field name="PICASA_ID" deprecated="29"/> + <field name="LATITUDE"/> + <field name="LONGITUDE"/> + <field name="MINI_THUMB_MAGIC"/> + <field name="ORIENTATION"/> + <field name="PICASA_ID"/> </class> <class name="android/provider/MediaStore$Images$Media" since="1"> <extends name="java/lang/Object"/> <implements name="android/provider/MediaStore$Images$ImageColumns"/> <method name="<init>()V"/> - <method name="getBitmap(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/graphics/Bitmap;" deprecated="29"/> + <method name="getBitmap(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/graphics/Bitmap;"/> <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;"/> - <method name="insertImage(Landroid/content/ContentResolver;Landroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="insertImage(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> - <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> - <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> + <method name="insertImage(Landroid/content/ContentResolver;Landroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> + <method name="insertImage(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> + <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;"/> + <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;"/> + <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;"/> <field name="CONTENT_TYPE"/> <field name="DEFAULT_SORT_ORDER"/> <field name="EXTERNAL_CONTENT_URI"/> <field name="INTERNAL_CONTENT_URI"/> </class> - <class name="android/provider/MediaStore$Images$Thumbnails" since="1" deprecated="29"> + <class name="android/provider/MediaStore$Images$Thumbnails" since="1"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <method name="<init>()V" deprecated="29"/> - <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" since="5" deprecated="29"/> - <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8" deprecated="29"/> - <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" deprecated="29"/> - <method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="5" deprecated="29"/> - <method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8" deprecated="29"/> - <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> - <method name="queryMiniThumbnail(Landroid/content/ContentResolver;JI[Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> - <method name="queryMiniThumbnails(Landroid/content/ContentResolver;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> - <field name="DATA" deprecated="29"/> - <field name="DEFAULT_SORT_ORDER" deprecated="29"/> - <field name="EXTERNAL_CONTENT_URI" deprecated="29"/> - <field name="FULL_SCREEN_KIND" deprecated="29"/> - <field name="HEIGHT" deprecated="29"/> - <field name="IMAGE_ID" deprecated="29"/> - <field name="INTERNAL_CONTENT_URI" deprecated="29"/> - <field name="KIND" deprecated="29"/> - <field name="MICRO_KIND" deprecated="29"/> - <field name="MINI_KIND" deprecated="29"/> - <field name="THUMB_DATA" since="5" deprecated="29"/> - <field name="WIDTH" deprecated="29"/> + <method name="<init>()V"/> + <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" since="5"/> + <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8"/> + <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;"/> + <method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="5"/> + <method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8"/> + <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;"/> + <method name="queryMiniThumbnail(Landroid/content/ContentResolver;JI[Ljava/lang/String;)Landroid/database/Cursor;"/> + <method name="queryMiniThumbnails(Landroid/content/ContentResolver;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/database/Cursor;"/> + <field name="DATA"/> + <field name="DEFAULT_SORT_ORDER"/> + <field name="EXTERNAL_CONTENT_URI"/> + <field name="FULL_SCREEN_KIND"/> + <field name="HEIGHT"/> + <field name="IMAGE_ID"/> + <field name="INTERNAL_CONTENT_URI"/> + <field name="KIND"/> + <field name="MICRO_KIND"/> + <field name="MINI_KIND"/> + <field name="THUMB_DATA" since="5"/> + <field name="WIDTH"/> </class> <class name="android/provider/MediaStore$MediaColumns" since="1"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <field name="BUCKET_DISPLAY_NAME" since="29"/> - <field name="BUCKET_ID" since="29"/> - <field name="DATA" deprecated="29"/> + <field name="DATA"/> <field name="DATE_ADDED"/> - <field name="DATE_EXPIRES" since="29"/> <field name="DATE_MODIFIED"/> - <field name="DATE_TAKEN" since="29"/> <field name="DISPLAY_NAME"/> - <field name="DOCUMENT_ID" since="29"/> - <field name="DURATION" since="29"/> <field name="HEIGHT" since="16"/> - <field name="INSTANCE_ID" since="29"/> - <field name="IS_PENDING" since="29"/> <field name="MIME_TYPE"/> - <field name="ORIENTATION" since="29"/> - <field name="ORIGINAL_DOCUMENT_ID" since="29"/> - <field name="OWNER_PACKAGE_NAME" since="29"/> - <field name="RELATIVE_PATH" since="29"/> <field name="SIZE"/> <field name="TITLE"/> - <field name="VOLUME_NAME" since="29"/> <field name="WIDTH" since="16"/> </class> <class name="android/provider/MediaStore$Video" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" deprecated="29"/> + <method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;"/> <field name="DEFAULT_SORT_ORDER"/> </class> <class name="android/provider/MediaStore$Video$Media" since="1"> @@ -38259,26 +36912,26 @@ <field name="EXTERNAL_CONTENT_URI"/> <field name="INTERNAL_CONTENT_URI"/> </class> - <class name="android/provider/MediaStore$Video$Thumbnails" since="5" deprecated="29"> + <class name="android/provider/MediaStore$Video$Thumbnails" since="5"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <method name="<init>()V" deprecated="29"/> - <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" deprecated="29"/> - <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8" deprecated="29"/> - <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" deprecated="29"/> - <method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" deprecated="29"/> - <method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8" deprecated="29"/> - <field name="DATA" deprecated="29"/> - <field name="DEFAULT_SORT_ORDER" deprecated="29"/> - <field name="EXTERNAL_CONTENT_URI" deprecated="29"/> - <field name="FULL_SCREEN_KIND" deprecated="29"/> - <field name="HEIGHT" deprecated="29"/> - <field name="INTERNAL_CONTENT_URI" deprecated="29"/> - <field name="KIND" deprecated="29"/> - <field name="MICRO_KIND" deprecated="29"/> - <field name="MINI_KIND" deprecated="29"/> - <field name="VIDEO_ID" deprecated="29"/> - <field name="WIDTH" deprecated="29"/> + <method name="<init>()V"/> + <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V"/> + <method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8"/> + <method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;"/> + <method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;"/> + <method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8"/> + <field name="DATA"/> + <field name="DEFAULT_SORT_ORDER"/> + <field name="EXTERNAL_CONTENT_URI"/> + <field name="FULL_SCREEN_KIND"/> + <field name="HEIGHT"/> + <field name="INTERNAL_CONTENT_URI"/> + <field name="KIND"/> + <field name="MICRO_KIND"/> + <field name="MINI_KIND"/> + <field name="VIDEO_ID"/> + <field name="WIDTH"/> </class> <class name="android/provider/MediaStore$Video$VideoColumns" since="1"> <extends name="java/lang/Object"/> @@ -38286,17 +36939,17 @@ <field name="ALBUM"/> <field name="ARTIST"/> <field name="BOOKMARK" since="3"/> - <field name="BUCKET_DISPLAY_NAME" since="3" removed="29"/> - <field name="BUCKET_ID" since="3" removed="29"/> + <field name="BUCKET_DISPLAY_NAME" since="3"/> + <field name="BUCKET_ID" since="3"/> <field name="CATEGORY"/> - <field name="DATE_TAKEN" removed="29"/> + <field name="DATE_TAKEN"/> <field name="DESCRIPTION"/> - <field name="DURATION" removed="29"/> + <field name="DURATION"/> <field name="IS_PRIVATE"/> <field name="LANGUAGE"/> - <field name="LATITUDE" deprecated="29"/> - <field name="LONGITUDE" deprecated="29"/> - <field name="MINI_THUMB_MAGIC" deprecated="29"/> + <field name="LATITUDE"/> + <field name="LONGITUDE"/> + <field name="MINI_THUMB_MAGIC"/> <field name="RESOLUTION"/> <field name="TAGS"/> </class> @@ -38329,10 +36982,7 @@ <field name="ACTION_APPLICATION_DETAILS_SETTINGS" since="9"/> <field name="ACTION_APPLICATION_DEVELOPMENT_SETTINGS" since="3"/> <field name="ACTION_APPLICATION_SETTINGS"/> - <field name="ACTION_APP_NOTIFICATION_BUBBLE_SETTINGS" since="29"/> <field name="ACTION_APP_NOTIFICATION_SETTINGS" since="26"/> - <field name="ACTION_APP_SEARCH_SETTINGS" since="29"/> - <field name="ACTION_APP_USAGE_SETTINGS" since="29"/> <field name="ACTION_BATTERY_SAVER_SETTINGS" since="22"/> <field name="ACTION_BLUETOOTH_SETTINGS"/> <field name="ACTION_CAPTIONING_SETTINGS" since="19"/> @@ -38366,12 +37016,10 @@ <field name="ACTION_NFC_PAYMENT_SETTINGS" since="19"/> <field name="ACTION_NFC_SETTINGS" since="16"/> <field name="ACTION_NIGHT_DISPLAY_SETTINGS" since="26"/> - <field name="ACTION_NOTIFICATION_ASSISTANT_SETTINGS" since="29"/> <field name="ACTION_NOTIFICATION_LISTENER_SETTINGS" since="22"/> <field name="ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS" since="23"/> <field name="ACTION_PRINT_SETTINGS" since="19"/> <field name="ACTION_PRIVACY_SETTINGS" since="5"/> - <field name="ACTION_PROCESS_WIFI_EASY_CONNECT_URI" since="29"/> <field name="ACTION_QUICK_LAUNCH_SETTINGS" since="3"/> <field name="ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" since="23"/> <field name="ACTION_REQUEST_SET_AUTOFILL_SERVICE" since="26"/> @@ -38380,7 +37028,7 @@ <field name="ACTION_SETTINGS"/> <field name="ACTION_SHOW_REGULATORY_INFO" since="21"/> <field name="ACTION_SOUND_SETTINGS"/> - <field name="ACTION_STORAGE_VOLUME_ACCESS_SETTINGS" since="28" deprecated="29"/> + <field name="ACTION_STORAGE_VOLUME_ACCESS_SETTINGS" since="28"/> <field name="ACTION_SYNC_SETTINGS" since="3"/> <field name="ACTION_USAGE_ACCESS_SETTINGS" since="21"/> <field name="ACTION_USER_DICTIONARY_SETTINGS" since="3"/> @@ -38429,7 +37077,6 @@ <field name="AIRPLANE_MODE_RADIOS"/> <field name="ALWAYS_FINISH_ACTIVITIES"/> <field name="ANIMATOR_DURATION_SCALE"/> - <field name="APPLY_RAMPING_RINGER" since="29"/> <field name="AUTO_TIME"/> <field name="AUTO_TIME_ZONE"/> <field name="BLUETOOTH_ON"/> @@ -38449,7 +37096,7 @@ <field name="RADIO_CELL"/> <field name="RADIO_NFC"/> <field name="RADIO_WIFI"/> - <field name="SHOW_PROCESSES" deprecated="25"/> + <field name="SHOW_PROCESSES" deprecated="26"/> <field name="STAY_ON_WHILE_PLUGGED_IN"/> <field name="SYS_PROP_SETTING_VERSION" removed="24"/> <field name="TRANSITION_ANIMATION_SCALE"/> @@ -38479,13 +37126,6 @@ <field name="NAME"/> <field name="VALUE"/> </class> - <class name="android/provider/Settings$Panel" since="29"> - <extends name="java/lang/Object"/> - <field name="ACTION_INTERNET_CONNECTIVITY"/> - <field name="ACTION_NFC"/> - <field name="ACTION_VOLUME"/> - <field name="ACTION_WIFI"/> - </class> <class name="android/provider/Settings$Secure" since="3"> <extends name="android/provider/Settings$NameValueTable"/> <method name="<init>()V"/> @@ -38510,7 +37150,7 @@ <field name="ALLOWED_GEOLOCATION_ORIGINS" since="8"/> <field name="ALLOW_MOCK_LOCATION" deprecated="23"/> <field name="ANDROID_ID"/> - <field name="BACKGROUND_DATA" deprecated="15"/> + <field name="BACKGROUND_DATA" deprecated="16"/> <field name="BLUETOOTH_ON" deprecated="17"/> <field name="CONTENT_URI"/> <field name="DATA_ROAMING" deprecated="17"/> @@ -38531,7 +37171,7 @@ <field name="LOCK_PATTERN_ENABLED" since="8" deprecated="23"/> <field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="8" deprecated="17"/> <field name="LOCK_PATTERN_VISIBLE" since="8" deprecated="23"/> - <field name="LOGGING_ID" deprecated="15"/> + <field name="LOGGING_ID" deprecated="16"/> <field name="NETWORK_PREFERENCE" deprecated="17"/> <field name="PARENTAL_CONTROL_ENABLED"/> <field name="PARENTAL_CONTROL_LAST_UPDATE"/> @@ -38542,14 +37182,14 @@ <field name="SKIP_FIRST_USE_HINTS" since="21"/> <field name="SYS_PROP_SETTING_VERSION" removed="24"/> <field name="TOUCH_EXPLORATION_ENABLED" since="14"/> - <field name="TTS_DEFAULT_COUNTRY" since="4" deprecated="15"/> - <field name="TTS_DEFAULT_LANG" since="4" deprecated="15"/> + <field name="TTS_DEFAULT_COUNTRY" since="4" deprecated="16"/> + <field name="TTS_DEFAULT_LANG" since="4" deprecated="16"/> <field name="TTS_DEFAULT_PITCH" since="4"/> <field name="TTS_DEFAULT_RATE" since="4"/> <field name="TTS_DEFAULT_SYNTH" since="4"/> - <field name="TTS_DEFAULT_VARIANT" since="4" deprecated="15"/> + <field name="TTS_DEFAULT_VARIANT" since="4" deprecated="16"/> <field name="TTS_ENABLED_PLUGINS" since="8"/> - <field name="TTS_USE_DEFAULTS" since="4" deprecated="15"/> + <field name="TTS_USE_DEFAULTS" since="4" deprecated="16"/> <field name="USB_MASS_STORAGE_ENABLED" deprecated="17"/> <field name="USE_GOOGLE_MAIL" deprecated="17"/> <field name="WIFI_MAX_DHCP_RETRY_COUNT" deprecated="17"/> @@ -38558,18 +37198,18 @@ <field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" deprecated="17"/> <field name="WIFI_NUM_OPEN_NETWORKS_KEPT" deprecated="17"/> <field name="WIFI_ON" deprecated="17"/> - <field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" deprecated="15"/> - <field name="WIFI_WATCHDOG_AP_COUNT" deprecated="15"/> - <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" deprecated="15"/> - <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" deprecated="15"/> - <field name="WIFI_WATCHDOG_MAX_AP_CHECKS" deprecated="15"/> + <field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" deprecated="16"/> + <field name="WIFI_WATCHDOG_AP_COUNT" deprecated="16"/> + <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" deprecated="16"/> + <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" deprecated="16"/> + <field name="WIFI_WATCHDOG_MAX_AP_CHECKS" deprecated="16"/> <field name="WIFI_WATCHDOG_ON" deprecated="17"/> - <field name="WIFI_WATCHDOG_PING_COUNT" deprecated="15"/> - <field name="WIFI_WATCHDOG_PING_DELAY_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_WATCH_LIST" deprecated="15"/> + <field name="WIFI_WATCHDOG_PING_COUNT" deprecated="16"/> + <field name="WIFI_WATCHDOG_PING_DELAY_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_WATCH_LIST" deprecated="16"/> </class> <class name="android/provider/Settings$SettingNotFoundException" since="1"> <extends name="android/util/AndroidException"/> @@ -38596,49 +37236,49 @@ <method name="putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z"/> <method name="setShowGTalkServiceStatus(Landroid/content/ContentResolver;Z)V" deprecated="17"/> <field name="ACCELEROMETER_ROTATION" since="3"/> - <field name="ADB_ENABLED" deprecated="15"/> + <field name="ADB_ENABLED" deprecated="16"/> <field name="AIRPLANE_MODE_ON" deprecated="17"/> <field name="AIRPLANE_MODE_RADIOS" deprecated="17"/> <field name="ALARM_ALERT" since="5"/> <field name="ALWAYS_FINISH_ACTIVITIES" deprecated="17"/> - <field name="ANDROID_ID" deprecated="15"/> + <field name="ANDROID_ID" deprecated="16"/> <field name="ANIMATOR_DURATION_SCALE" since="16" deprecated="17"/> <field name="APPEND_FOR_LAST_AUDIBLE" removed="23"/> <field name="AUTO_TIME" deprecated="17"/> <field name="AUTO_TIME_ZONE" since="11" deprecated="17"/> <field name="BLUETOOTH_DISCOVERABILITY"/> <field name="BLUETOOTH_DISCOVERABILITY_TIMEOUT"/> - <field name="BLUETOOTH_ON" deprecated="15"/> + <field name="BLUETOOTH_ON" deprecated="16"/> <field name="CONTENT_URI"/> - <field name="DATA_ROAMING" deprecated="15"/> + <field name="DATA_ROAMING" deprecated="16"/> <field name="DATE_FORMAT"/> <field name="DEBUG_APP" deprecated="17"/> <field name="DEFAULT_ALARM_ALERT_URI" since="5"/> <field name="DEFAULT_NOTIFICATION_URI"/> <field name="DEFAULT_RINGTONE_URI"/> - <field name="DEVICE_PROVISIONED" deprecated="15"/> + <field name="DEVICE_PROVISIONED" deprecated="16"/> <field name="DIM_SCREEN" deprecated="17"/> <field name="DTMF_TONE_TYPE_WHEN_DIALING" since="23"/> <field name="DTMF_TONE_WHEN_DIALING"/> <field name="END_BUTTON_BEHAVIOR"/> <field name="FONT_SCALE"/> <field name="HAPTIC_FEEDBACK_ENABLED" since="3"/> - <field name="HTTP_PROXY" deprecated="15"/> - <field name="INSTALL_NON_MARKET_APPS" deprecated="15"/> - <field name="LOCATION_PROVIDERS_ALLOWED" deprecated="15"/> - <field name="LOCK_PATTERN_ENABLED" deprecated="15"/> - <field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="3" deprecated="15"/> - <field name="LOCK_PATTERN_VISIBLE" deprecated="15"/> - <field name="LOGGING_ID" deprecated="15"/> + <field name="HTTP_PROXY" deprecated="16"/> + <field name="INSTALL_NON_MARKET_APPS" deprecated="16"/> + <field name="LOCATION_PROVIDERS_ALLOWED" deprecated="16"/> + <field name="LOCK_PATTERN_ENABLED" deprecated="16"/> + <field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="3" deprecated="16"/> + <field name="LOCK_PATTERN_VISIBLE" deprecated="16"/> + <field name="LOGGING_ID" deprecated="16"/> <field name="MODE_RINGER" deprecated="17"/> <field name="MODE_RINGER_STREAMS_AFFECTED"/> <field name="MUTE_STREAMS_AFFECTED"/> - <field name="NETWORK_PREFERENCE" deprecated="15"/> + <field name="NETWORK_PREFERENCE" deprecated="16"/> <field name="NEXT_ALARM_FORMATTED" deprecated="21"/> <field name="NOTIFICATION_SOUND"/> - <field name="PARENTAL_CONTROL_ENABLED" deprecated="15"/> - <field name="PARENTAL_CONTROL_LAST_UPDATE" deprecated="15"/> - <field name="PARENTAL_CONTROL_REDIRECT_URL" deprecated="15"/> + <field name="PARENTAL_CONTROL_ENABLED" deprecated="16"/> + <field name="PARENTAL_CONTROL_LAST_UPDATE" deprecated="16"/> + <field name="PARENTAL_CONTROL_REDIRECT_URL" deprecated="16"/> <field name="RADIO_BLUETOOTH" deprecated="17"/> <field name="RADIO_CELL" deprecated="17"/> <field name="RADIO_NFC" since="14" deprecated="17"/> @@ -38649,11 +37289,11 @@ <field name="SCREEN_BRIGHTNESS_MODE_AUTOMATIC" since="8"/> <field name="SCREEN_BRIGHTNESS_MODE_MANUAL" since="8"/> <field name="SCREEN_OFF_TIMEOUT"/> - <field name="SETTINGS_CLASSNAME" deprecated="15"/> + <field name="SETTINGS_CLASSNAME" deprecated="16"/> <field name="SETUP_WIZARD_HAS_RUN"/> <field name="SHOW_GTALK_SERVICE_STATUS"/> <field name="SHOW_PROCESSES" deprecated="17"/> - <field name="SHOW_WEB_SUGGESTIONS" since="4" deprecated="15"/> + <field name="SHOW_WEB_SUGGESTIONS" since="4" deprecated="16"/> <field name="SOUND_EFFECTS_ENABLED"/> <field name="STAY_ON_WHILE_PLUGGED_IN" deprecated="17"/> <field name="SYS_PROP_SETTING_VERSION" removed="24"/> @@ -38663,9 +37303,9 @@ <field name="TEXT_SHOW_PASSWORD"/> <field name="TIME_12_24"/> <field name="TRANSITION_ANIMATION_SCALE" deprecated="17"/> - <field name="USB_MASS_STORAGE_ENABLED" deprecated="15"/> + <field name="USB_MASS_STORAGE_ENABLED" deprecated="16"/> <field name="USER_ROTATION" since="11"/> - <field name="USE_GOOGLE_MAIL" deprecated="15"/> + <field name="USE_GOOGLE_MAIL" deprecated="16"/> <field name="VIBRATE_ON"/> <field name="VIBRATE_WHEN_RINGING" since="23"/> <field name="VOLUME_ALARM" removed="23"/> @@ -38678,12 +37318,12 @@ <field name="VOLUME_VOICE" removed="23"/> <field name="WAIT_FOR_DEBUGGER" deprecated="17"/> <field name="WALLPAPER_ACTIVITY" deprecated="17"/> - <field name="WIFI_MAX_DHCP_RETRY_COUNT" since="3" deprecated="15"/> - <field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" since="3" deprecated="15"/> - <field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" deprecated="15"/> - <field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" deprecated="15"/> - <field name="WIFI_NUM_OPEN_NETWORKS_KEPT" deprecated="15"/> - <field name="WIFI_ON" deprecated="15"/> + <field name="WIFI_MAX_DHCP_RETRY_COUNT" since="3" deprecated="16"/> + <field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" since="3" deprecated="16"/> + <field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" deprecated="16"/> + <field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" deprecated="16"/> + <field name="WIFI_NUM_OPEN_NETWORKS_KEPT" deprecated="16"/> + <field name="WIFI_ON" deprecated="16"/> <field name="WIFI_SLEEP_POLICY" since="3" deprecated="17"/> <field name="WIFI_SLEEP_POLICY_DEFAULT" since="3" deprecated="17"/> <field name="WIFI_SLEEP_POLICY_NEVER" since="3" deprecated="17"/> @@ -38694,21 +37334,22 @@ <field name="WIFI_STATIC_IP" deprecated="17"/> <field name="WIFI_STATIC_NETMASK" deprecated="17"/> <field name="WIFI_USE_STATIC_IP" deprecated="17"/> - <field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" deprecated="15"/> - <field name="WIFI_WATCHDOG_AP_COUNT" deprecated="15"/> - <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" deprecated="15"/> - <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" deprecated="15"/> - <field name="WIFI_WATCHDOG_MAX_AP_CHECKS" deprecated="15"/> - <field name="WIFI_WATCHDOG_ON" deprecated="15"/> - <field name="WIFI_WATCHDOG_PING_COUNT" deprecated="15"/> - <field name="WIFI_WATCHDOG_PING_DELAY_MS" deprecated="15"/> - <field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" deprecated="15"/> + <field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" deprecated="16"/> + <field name="WIFI_WATCHDOG_AP_COUNT" deprecated="16"/> + <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" deprecated="16"/> + <field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" deprecated="16"/> + <field name="WIFI_WATCHDOG_MAX_AP_CHECKS" deprecated="16"/> + <field name="WIFI_WATCHDOG_ON" deprecated="16"/> + <field name="WIFI_WATCHDOG_PING_COUNT" deprecated="16"/> + <field name="WIFI_WATCHDOG_PING_DELAY_MS" deprecated="16"/> + <field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" deprecated="16"/> <field name="WINDOW_ANIMATION_SCALE" deprecated="17"/> </class> <class name="android/provider/SettingsSlicesContract" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="AUTHORITY"/> <field name="BASE_URI"/> <field name="KEY_AIRPLANE_MODE"/> @@ -38749,6 +37390,7 @@ </class> <class name="android/provider/Telephony" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/provider/Telephony$BaseMmsColumns" since="19"> <extends name="java/lang/Object"/> @@ -38802,42 +37444,39 @@ <class name="android/provider/Telephony$CarrierId" since="28"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <method name="getSpecificCarrierIdUriForSubscriptionId(I)Landroid/net/Uri;" since="29"/> + <method name="<init>()V"/> <method name="getUriForSubscriptionId(I)Landroid/net/Uri;"/> <field name="CARRIER_ID"/> <field name="CARRIER_NAME"/> <field name="CONTENT_URI"/> - <field name="SPECIFIC_CARRIER_ID" since="29"/> - <field name="SPECIFIC_CARRIER_ID_NAME" since="29"/> </class> <class name="android/provider/Telephony$Carriers" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <field name="APN"/> <field name="AUTH_TYPE"/> <field name="BEARER" deprecated="28"/> <field name="CARRIER_ENABLED"/> - <field name="CARRIER_ID" since="29"/> <field name="CONTENT_URI"/> <field name="CURRENT"/> <field name="DEFAULT_SORT_ORDER"/> - <field name="MCC" deprecated="29"/> + <field name="MCC"/> <field name="MMSC"/> <field name="MMSPORT"/> <field name="MMSPROXY"/> - <field name="MNC" deprecated="29"/> - <field name="MVNO_MATCH_DATA" deprecated="29"/> - <field name="MVNO_TYPE" deprecated="29"/> + <field name="MNC"/> + <field name="MVNO_MATCH_DATA"/> + <field name="MVNO_TYPE"/> <field name="NAME"/> <field name="NETWORK_TYPE_BITMASK" since="28"/> - <field name="NUMERIC" deprecated="29"/> + <field name="NUMERIC"/> <field name="PASSWORD"/> <field name="PORT"/> <field name="PROTOCOL"/> <field name="PROXY"/> <field name="ROAMING_PROTOCOL"/> <field name="SERVER"/> - <field name="SIM_APN_URI" since="29"/> <field name="SUBSCRIPTION_ID" since="22"/> <field name="TYPE"/> <field name="USER"/> @@ -38845,6 +37484,7 @@ <class name="android/provider/Telephony$Mms" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/Telephony$BaseMmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> <field name="REPORT_REQUEST_URI"/> @@ -38853,7 +37493,7 @@ <class name="android/provider/Telephony$Mms$Addr" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <method name="getAddrUriForMessage(Ljava/lang/String;)Landroid/net/Uri;" since="30"/> + <method name="<init>()V"/> <field name="ADDRESS"/> <field name="CHARSET"/> <field name="CONTACT_ID"/> @@ -38863,36 +37503,39 @@ <class name="android/provider/Telephony$Mms$Draft" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/Telephony$BaseMmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> <class name="android/provider/Telephony$Mms$Inbox" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/Telephony$BaseMmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> <class name="android/provider/Telephony$Mms$Intents" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CONTENT_CHANGED_ACTION"/> <field name="DELETED_CONTENTS"/> </class> <class name="android/provider/Telephony$Mms$Outbox" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/Telephony$BaseMmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> <class name="android/provider/Telephony$Mms$Part" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> - <method name="getPartUriForMessage(Ljava/lang/String;)Landroid/net/Uri;" since="30"/> + <method name="<init>()V"/> <field name="CHARSET"/> <field name="CONTENT_DISPOSITION"/> <field name="CONTENT_ID"/> <field name="CONTENT_LOCATION"/> <field name="CONTENT_TYPE"/> - <field name="CONTENT_URI" since="29"/> <field name="CT_START"/> <field name="CT_TYPE"/> <field name="FILENAME"/> @@ -38904,18 +37547,21 @@ </class> <class name="android/provider/Telephony$Mms$Rate" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="SENT_TIME"/> </class> <class name="android/provider/Telephony$Mms$Sent" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/Telephony$BaseMmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> <class name="android/provider/Telephony$MmsSms" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <field name="CONTENT_CONVERSATIONS_URI"/> <field name="CONTENT_DRAFT_URI"/> <field name="CONTENT_FILTER_BYPHONE_URI"/> @@ -38938,6 +37584,7 @@ <class name="android/provider/Telephony$MmsSms$PendingMessages" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DUE_TIME"/> <field name="ERROR_CODE"/> @@ -38951,6 +37598,7 @@ </class> <class name="android/provider/Telephony$ServiceStateTable" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getUriForSubscriptionId(I)Landroid/net/Uri;"/> <method name="getUriForSubscriptionIdAndField(ILjava/lang/String;)Landroid/net/Uri;"/> <field name="AUTHORITY"/> @@ -38963,6 +37611,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Telephony$TextBasedSmsColumns"/> + <method name="<init>()V"/> <method name="getDefaultSmsPackage(Landroid/content/Context;)Ljava/lang/String;"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> @@ -38971,6 +37620,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Telephony$TextBasedSmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> <field name="MESSAGE_COUNT"/> @@ -38980,6 +37630,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Telephony$TextBasedSmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> @@ -38987,11 +37638,13 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Telephony$TextBasedSmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> <class name="android/provider/Telephony$Sms$Intents" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getMessagesFromIntent(Landroid/content/Intent;)[Landroid/telephony/SmsMessage;"/> <field name="ACTION_CHANGE_DEFAULT"/> <field name="ACTION_DEFAULT_SMS_PACKAGE_CHANGED" since="24"/> @@ -39004,7 +37657,7 @@ <field name="RESULT_SMS_HANDLED"/> <field name="RESULT_SMS_OUT_OF_MEMORY"/> <field name="RESULT_SMS_UNSUPPORTED"/> - <field name="SECRET_CODE_ACTION" since="28" deprecated="29"/> + <field name="SECRET_CODE_ACTION" since="28"/> <field name="SIM_FULL_ACTION"/> <field name="SMS_CB_RECEIVED_ACTION"/> <field name="SMS_DELIVER_ACTION"/> @@ -39019,6 +37672,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Telephony$TextBasedSmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> @@ -39026,6 +37680,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/Telephony$TextBasedSmsColumns"/> + <method name="<init>()V"/> <field name="CONTENT_URI"/> <field name="DEFAULT_SORT_ORDER"/> </class> @@ -39064,6 +37719,7 @@ <class name="android/provider/Telephony$Threads" since="19"> <extends name="java/lang/Object"/> <implements name="android/provider/Telephony$ThreadsColumns"/> + <method name="<init>()V"/> <method name="getOrCreateThreadId(Landroid/content/Context;Ljava/lang/String;)J" since="23"/> <method name="getOrCreateThreadId(Landroid/content/Context;Ljava/util/Set;)J" since="23"/> <field name="BROADCAST_THREAD"/> @@ -39112,6 +37768,7 @@ </class> <class name="android/provider/VoicemailContract" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ACTION_FETCH_VOICEMAIL"/> <field name="ACTION_NEW_VOICEMAIL"/> <field name="ACTION_SYNC_VOICEMAIL" since="24"/> @@ -39123,6 +37780,7 @@ <class name="android/provider/VoicemailContract$Status" since="14"> <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> + <method name="<init>()V"/> <method name="buildSourceUri(Ljava/lang/String;)Landroid/net/Uri;"/> <field name="CONFIGURATION_STATE"/> <field name="CONFIGURATION_STATE_CAN_BE_CONFIGURED"/> @@ -39160,6 +37818,7 @@ <extends name="java/lang/Object"/> <implements name="android/provider/BaseColumns"/> <implements name="android/provider/OpenableColumns"/> + <method name="<init>()V"/> <method name="buildSourceUri(Ljava/lang/String;)Landroid/net/Uri;"/> <field name="ARCHIVED" since="26"/> <field name="BACKED_UP" since="26"/> @@ -39187,6 +37846,8 @@ </class> <class name="android/renderscript/Allocation" since="11"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Type;I)V" since="29"/> <method name="copy1DRangeFrom(IILandroid/renderscript/Allocation;I)V" since="14"/> <method name="copy1DRangeFrom(IILjava/lang/Object;)V" since="21"/> <method name="copy1DRangeFrom(II[B)V"/> @@ -39299,6 +37960,8 @@ </class> <class name="android/renderscript/AllocationAdapter" since="11"> <extends name="android/renderscript/Allocation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Allocation;Landroid/renderscript/Type;)V" since="29"/> <method name="create1D(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/AllocationAdapter;" since="14"/> <method name="create2D(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/AllocationAdapter;"/> <method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;Landroid/renderscript/Type;)Landroid/renderscript/AllocationAdapter;" since="23"/> @@ -39320,6 +37983,8 @@ </class> <class name="android/renderscript/BaseObj" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="destroy()V"/> <method name="getName()Ljava/lang/String;" since="14"/> <method name="setName(Ljava/lang/String;)V"/> @@ -39374,6 +38039,8 @@ </class> <class name="android/renderscript/Element" since="11"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="ALLOCATION(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;"/> <method name="A_8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;"/> <method name="BOOLEAN(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;"/> @@ -39596,6 +38263,7 @@ </class> <class name="android/renderscript/FileA3D" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V"/> <method name="createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/renderscript/FileA3D;" deprecated="16"/> <method name="createFromFile(Landroid/renderscript/RenderScript;Ljava/io/File;)Landroid/renderscript/FileA3D;" deprecated="16"/> <method name="createFromFile(Landroid/renderscript/RenderScript;Ljava/lang/String;)Landroid/renderscript/FileA3D;" deprecated="16"/> @@ -39612,6 +38280,7 @@ </class> <class name="android/renderscript/FileA3D$IndexEntry" since="11" deprecated="16" removed="18"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getEntryType()Landroid/renderscript/FileA3D$EntryType;" deprecated="16"/> <method name="getMesh()Landroid/renderscript/Mesh;" deprecated="16"/> <method name="getName()Ljava/lang/String;" deprecated="16"/> @@ -39643,6 +38312,7 @@ </class> <class name="android/renderscript/Font" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;Landroid/renderscript/Font$Style;F)Landroid/renderscript/Font;" deprecated="16"/> <method name="createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;" deprecated="16"/> <method name="createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/io/File;F)Landroid/renderscript/Font;" deprecated="16"/> @@ -39774,6 +38444,7 @@ </class> <class name="android/renderscript/Mesh" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V"/> <method name="getIndexSetAllocation(I)Landroid/renderscript/Allocation;" deprecated="16"/> <method name="getPrimitive(I)Landroid/renderscript/Mesh$Primitive;" deprecated="16"/> <method name="getPrimitiveCount()I" deprecated="16"/> @@ -39829,6 +38500,7 @@ </class> <class name="android/renderscript/Program" since="11" removed="18"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V"/> <method name="bindConstants(Landroid/renderscript/Allocation;I)V"/> <method name="bindSampler(Landroid/renderscript/Sampler;I)V"/> <method name="bindTexture(Landroid/renderscript/Allocation;I)V"/> @@ -39859,6 +38531,7 @@ </class> <class name="android/renderscript/ProgramFragment" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/Program"/> + <method name="<init>()V"/> </class> <class name="android/renderscript/ProgramFragment$Builder" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/Program$BaseProgramBuilder"/> @@ -39867,6 +38540,7 @@ </class> <class name="android/renderscript/ProgramFragmentFixedFunction" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/ProgramFragment"/> + <method name="<init>()V"/> </class> <class name="android/renderscript/ProgramFragmentFixedFunction$Builder" since="11" deprecated="16" removed="18"> <extends name="java/lang/Object"/> @@ -39896,6 +38570,7 @@ </class> <class name="android/renderscript/ProgramRaster" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V"/> <method name="CULL_BACK(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" deprecated="16"/> <method name="CULL_FRONT(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" deprecated="16"/> <method name="CULL_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" deprecated="16"/> @@ -39919,6 +38594,7 @@ </class> <class name="android/renderscript/ProgramStore" since="11" removed="18"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V"/> <method name="BLEND_ALPHA_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;"/> <method name="BLEND_ALPHA_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;"/> <method name="BLEND_NONE_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;"/> @@ -39984,6 +38660,7 @@ </class> <class name="android/renderscript/ProgramVertex" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/Program"/> + <method name="<init>()V"/> <method name="getInput(I)Landroid/renderscript/Element;" since="16" deprecated="16"/> <method name="getInputCount()I" since="16" deprecated="16"/> </class> @@ -39995,6 +38672,7 @@ </class> <class name="android/renderscript/ProgramVertexFixedFunction" since="11" deprecated="16" removed="18"> <extends name="android/renderscript/ProgramVertex"/> + <method name="<init>()V"/> <method name="bindConstants(Landroid/renderscript/ProgramVertexFixedFunction$Constants;)V" deprecated="16"/> </class> <class name="android/renderscript/ProgramVertexFixedFunction$Builder" since="11" deprecated="16" removed="18"> @@ -40053,6 +38731,8 @@ </class> <class name="android/renderscript/RenderScript" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="contextDump()V"/> <method name="create(Landroid/content/Context;)Landroid/renderscript/RenderScript;"/> <method name="create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;)Landroid/renderscript/RenderScript;" since="18"/> @@ -40129,6 +38809,8 @@ </class> <class name="android/renderscript/Sampler" since="11"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="CLAMP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;"/> <method name="CLAMP_LINEAR_MIP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;"/> <method name="CLAMP_NEAREST(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;"/> @@ -40168,6 +38850,8 @@ </class> <class name="android/renderscript/Script" since="11"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="bindAllocation(Landroid/renderscript/Allocation;I)V"/> <method name="createFieldID(ILandroid/renderscript/Element;)Landroid/renderscript/Script$FieldID;" since="17"/> <method name="createInvokeID(I)Landroid/renderscript/Script$InvokeID;" since="23"/> @@ -40197,6 +38881,8 @@ </class> <class name="android/renderscript/Script$Builder" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/renderscript/RenderScript;)V" since="29"/> </class> <class name="android/renderscript/Script$FieldBase" since="11"> <extends name="java/lang/Object"/> @@ -40212,12 +38898,18 @@ </class> <class name="android/renderscript/Script$FieldID" since="17"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Script;I)V" since="29"/> </class> <class name="android/renderscript/Script$InvokeID" since="23"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Script;I)V" since="29"/> </class> <class name="android/renderscript/Script$KernelID" since="17"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Script;II)V" since="29"/> </class> <class name="android/renderscript/Script$LaunchOptions" since="18"> <extends name="java/lang/Object"/> @@ -40241,6 +38933,8 @@ </class> <class name="android/renderscript/ScriptGroup" since="17"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="execute()V" deprecated="23"/> <method name="execute([Ljava/lang/Object;)[Ljava/lang/Object;" since="23"/> <method name="setInput(Landroid/renderscript/Script$KernelID;Landroid/renderscript/Allocation;)V" deprecated="23"/> @@ -40252,11 +38946,11 @@ </class> <class name="android/renderscript/ScriptGroup$Builder" since="17" deprecated="23"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/renderscript/RenderScript;)V" deprecated="29"/> - <method name="addConnection(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$FieldID;)Landroid/renderscript/ScriptGroup$Builder;" deprecated="29"/> - <method name="addConnection(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Builder;" deprecated="29"/> - <method name="addKernel(Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Builder;" deprecated="29"/> - <method name="create()Landroid/renderscript/ScriptGroup;" deprecated="29"/> + <method name="<init>(Landroid/renderscript/RenderScript;)V"/> + <method name="addConnection(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$FieldID;)Landroid/renderscript/ScriptGroup$Builder;"/> + <method name="addConnection(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Builder;"/> + <method name="addKernel(Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Builder;"/> + <method name="create()Landroid/renderscript/ScriptGroup;"/> </class> <class name="android/renderscript/ScriptGroup$Builder2" since="23"> <extends name="java/lang/Object"/> @@ -40268,20 +38962,29 @@ </class> <class name="android/renderscript/ScriptGroup$Closure" since="23"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="getGlobal(Landroid/renderscript/Script$FieldID;)Landroid/renderscript/ScriptGroup$Future;"/> <method name="getReturn()Landroid/renderscript/ScriptGroup$Future;"/> </class> <class name="android/renderscript/ScriptGroup$Future" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/renderscript/ScriptGroup$Closure;Landroid/renderscript/Script$FieldID;Ljava/lang/Object;)V" since="29"/> </class> <class name="android/renderscript/ScriptGroup$Input" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/renderscript/ScriptIntrinsic" since="17"> <extends name="android/renderscript/Script"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> </class> <class name="android/renderscript/ScriptIntrinsic3DLUT" since="18"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Element;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsic3DLUT;"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40290,6 +38993,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicBLAS" since="23"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="BNNM(Landroid/renderscript/Allocation;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;II)V"/> <method name="CGBMV(IIILandroid/renderscript/Float2;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;ILandroid/renderscript/Float2;Landroid/renderscript/Allocation;I)V"/> <method name="CGEMM(IILandroid/renderscript/Float2;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Float2;Landroid/renderscript/Allocation;)V"/> @@ -40400,6 +39105,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicBlend" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlend;"/> <method name="forEachAdd(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V"/> <method name="forEachAdd(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40449,6 +39156,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicBlur" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;"/> <method name="forEach(Landroid/renderscript/Allocation;)V"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40459,6 +39168,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicColorMatrix" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;)Landroid/renderscript/ScriptIntrinsicColorMatrix;" since="19"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicColorMatrix;" deprecated="19"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V"/> @@ -40474,6 +39185,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicConvolve3x3" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicConvolve3x3;"/> <method name="forEach(Landroid/renderscript/Allocation;)V"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40484,6 +39197,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicConvolve5x5" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicConvolve5x5;"/> <method name="forEach(Landroid/renderscript/Allocation;)V"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40494,6 +39209,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicHistogram" since="19"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicHistogram;"/> <method name="forEach(Landroid/renderscript/Allocation;)V"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40506,6 +39223,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicLUT" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicLUT;"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V"/> <method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21"/> @@ -40517,6 +39236,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicResize" since="20"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;)Landroid/renderscript/ScriptIntrinsicResize;"/> <method name="forEach_bicubic(Landroid/renderscript/Allocation;)V"/> <method name="forEach_bicubic(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V"/> @@ -40526,6 +39247,8 @@ </class> <class name="android/renderscript/ScriptIntrinsicYuvToRGB" since="17"> <extends name="android/renderscript/ScriptIntrinsic"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicYuvToRGB;"/> <method name="forEach(Landroid/renderscript/Allocation;)V"/> <method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;"/> @@ -40558,6 +39281,8 @@ </class> <class name="android/renderscript/Type" since="11"> <extends name="android/renderscript/BaseObj"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLandroid/renderscript/RenderScript;)V" since="29"/> <method name="createX(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;I)Landroid/renderscript/Type;" since="21"/> <method name="createXY(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;II)Landroid/renderscript/Type;" since="21"/> <method name="createXYZ(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;III)Landroid/renderscript/Type;" since="21"/> @@ -40591,12 +39316,14 @@ <field name="POSITIVE_X" since="14"/> <field name="POSITIVE_Y" since="14"/> <field name="POSITIVE_Z" since="14"/> - <field name="POSITVE_X" deprecated="29"/> - <field name="POSITVE_Y" deprecated="29"/> - <field name="POSITVE_Z" deprecated="29"/> + <field name="POSITVE_X" deprecated="28"/> + <field name="POSITVE_Y" deprecated="28"/> + <field name="POSITVE_Z" deprecated="28"/> </class> <class name="android/sax/Element" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/sax/Element;Ljava/lang/String;Ljava/lang/String;I)V" since="29"/> <method name="getChild(Ljava/lang/String;)Landroid/sax/Element;"/> <method name="getChild(Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;"/> <method name="requireChild(Ljava/lang/String;)Landroid/sax/Element;"/> @@ -40638,6 +39365,7 @@ <class name="android/se/omapi/Channel" since="28"> <extends name="java/lang/Object"/> <implements name="java/nio/channels/Channel"/> + <method name="<init>()V"/> <method name="getSelectResponse()[B"/> <method name="getSession()Landroid/se/omapi/Session;"/> <method name="isBasicChannel()Z"/> @@ -40646,6 +39374,7 @@ </class> <class name="android/se/omapi/Reader" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="closeSessions()V"/> <method name="getName()Ljava/lang/String;"/> <method name="getSEService()Landroid/se/omapi/SEService;"/> @@ -40666,6 +39395,7 @@ </class> <class name="android/se/omapi/Session" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="close()V"/> <method name="closeChannels()V"/> <method name="getATR()[B"/> @@ -40678,6 +39408,8 @@ </class> <class name="android/security/AttestedKeyPair" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/security/KeyPair;[Ljava/security/cert/Certificate;)V" since="29"/> <method name="getAttestationRecord()Ljava/util/List;"/> <method name="getKeyPair()Ljava/security/KeyPair;"/> </class> @@ -40701,6 +39433,8 @@ </class> <class name="android/security/ConfirmationPrompt" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Ljava/lang/CharSequence;[B)V" since="29"/> <method name="cancelPrompt()V"/> <method name="isSupported(Landroid/content/Context;)Z"/> <method name="presentPrompt(Ljava/util/concurrent/Executor;Landroid/security/ConfirmationCallback;)V"/> @@ -40746,44 +39480,49 @@ <class name="android/security/KeyPairGeneratorSpec" since="18" deprecated="23"> <extends name="java/lang/Object"/> <implements name="java/security/spec/AlgorithmParameterSpec"/> - <method name="getAlgorithmParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;" since="19" deprecated="29"/> - <method name="getContext()Landroid/content/Context;" deprecated="29"/> - <method name="getEndDate()Ljava/util/Date;" deprecated="29"/> - <method name="getKeySize()I" since="19" deprecated="29"/> - <method name="getKeyType()Ljava/lang/String;" since="19" deprecated="29"/> - <method name="getKeystoreAlias()Ljava/lang/String;" deprecated="29"/> - <method name="getSerialNumber()Ljava/math/BigInteger;" deprecated="29"/> - <method name="getStartDate()Ljava/util/Date;" deprecated="29"/> - <method name="getSubjectDN()Ljavax/security/auth/x500/X500Principal;" deprecated="29"/> - <method name="isEncryptionRequired()Z" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;ILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;I)V" since="29"/> + <method name="getAlgorithmParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;" since="19"/> + <method name="getContext()Landroid/content/Context;"/> + <method name="getEndDate()Ljava/util/Date;"/> + <method name="getKeySize()I" since="19"/> + <method name="getKeyType()Ljava/lang/String;" since="19"/> + <method name="getKeystoreAlias()Ljava/lang/String;"/> + <method name="getSerialNumber()Ljava/math/BigInteger;"/> + <method name="getStartDate()Ljava/util/Date;"/> + <method name="getSubjectDN()Ljavax/security/auth/x500/X500Principal;"/> + <method name="isEncryptionRequired()Z"/> </class> <class name="android/security/KeyPairGeneratorSpec$Builder" since="18" deprecated="23"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="build()Landroid/security/KeyPairGeneratorSpec;" deprecated="29"/> - <method name="setAlgorithmParameterSpec(Ljava/security/spec/AlgorithmParameterSpec;)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19" deprecated="29"/> - <method name="setAlias(Ljava/lang/String;)Landroid/security/KeyPairGeneratorSpec$Builder;" deprecated="29"/> - <method name="setEncryptionRequired()Landroid/security/KeyPairGeneratorSpec$Builder;" deprecated="29"/> - <method name="setEndDate(Ljava/util/Date;)Landroid/security/KeyPairGeneratorSpec$Builder;" deprecated="29"/> - <method name="setKeySize(I)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19" deprecated="29"/> - <method name="setKeyType(Ljava/lang/String;)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19" deprecated="29"/> - <method name="setSerialNumber(Ljava/math/BigInteger;)Landroid/security/KeyPairGeneratorSpec$Builder;" deprecated="29"/> - <method name="setStartDate(Ljava/util/Date;)Landroid/security/KeyPairGeneratorSpec$Builder;" deprecated="29"/> - <method name="setSubject(Ljavax/security/auth/x500/X500Principal;)Landroid/security/KeyPairGeneratorSpec$Builder;" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="build()Landroid/security/KeyPairGeneratorSpec;"/> + <method name="setAlgorithmParameterSpec(Ljava/security/spec/AlgorithmParameterSpec;)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19"/> + <method name="setAlias(Ljava/lang/String;)Landroid/security/KeyPairGeneratorSpec$Builder;"/> + <method name="setEncryptionRequired()Landroid/security/KeyPairGeneratorSpec$Builder;"/> + <method name="setEndDate(Ljava/util/Date;)Landroid/security/KeyPairGeneratorSpec$Builder;"/> + <method name="setKeySize(I)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19"/> + <method name="setKeyType(Ljava/lang/String;)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19"/> + <method name="setSerialNumber(Ljava/math/BigInteger;)Landroid/security/KeyPairGeneratorSpec$Builder;"/> + <method name="setStartDate(Ljava/util/Date;)Landroid/security/KeyPairGeneratorSpec$Builder;"/> + <method name="setSubject(Ljavax/security/auth/x500/X500Principal;)Landroid/security/KeyPairGeneratorSpec$Builder;"/> </class> <class name="android/security/KeyStoreParameter" since="18" deprecated="23"> <extends name="java/lang/Object"/> <implements name="java/security/KeyStore$ProtectionParameter"/> - <method name="isEncryptionRequired()Z" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> + <method name="isEncryptionRequired()Z"/> </class> <class name="android/security/KeyStoreParameter$Builder" since="18" deprecated="23"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="build()Landroid/security/KeyStoreParameter;" deprecated="29"/> - <method name="setEncryptionRequired(Z)Landroid/security/KeyStoreParameter$Builder;" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="build()Landroid/security/KeyStoreParameter;"/> + <method name="setEncryptionRequired(Z)Landroid/security/KeyStoreParameter$Builder;"/> </class> <class name="android/security/NetworkSecurityPolicy" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getInstance()Landroid/security/NetworkSecurityPolicy;"/> <method name="isCleartextTrafficPermitted()Z"/> <method name="isCleartextTrafficPermitted(Ljava/lang/String;)Z" since="24"/> @@ -40797,6 +39536,8 @@ <class name="android/security/keystore/KeyGenParameterSpec" since="23"> <extends name="java/lang/Object"/> <implements name="java/security/spec/AlgorithmParameterSpec"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;IILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZ[BZZZZZZ)V" since="29"/> <method name="getAlgorithmParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;"/> <method name="getAttestationChallenge()[B" since="24"/> <method name="getBlockModes()[Ljava/lang/String;"/> @@ -40856,6 +39597,8 @@ <class name="android/security/keystore/KeyInfo" since="23"> <extends name="java/lang/Object"/> <implements name="java/security/spec/KeySpec"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;ZIILjava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZIZZZZZ)V" since="29"/> <method name="getBlockModes()[Ljava/lang/String;"/> <method name="getDigests()[Ljava/lang/String;"/> <method name="getEncryptionPaddings()[Ljava/lang/String;"/> @@ -40890,6 +39633,7 @@ </class> <class name="android/security/keystore/KeyProperties" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BLOCK_MODE_CBC"/> <field name="BLOCK_MODE_CTR"/> <field name="BLOCK_MODE_ECB"/> @@ -40929,6 +39673,8 @@ <class name="android/security/keystore/KeyProtection" since="23"> <extends name="java/lang/Object"/> <implements name="java/security/KeyStore$ProtectionParameter"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZZZJZZZZ)V" since="29"/> <method name="getBlockModes()[Ljava/lang/String;"/> <method name="getDigests()[Ljava/lang/String;"/> <method name="getEncryptionPaddings()[Ljava/lang/String;"/> @@ -41017,6 +39763,8 @@ <class name="android/service/autofill/BatchUpdates" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/BatchUpdates$Builder;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/service/autofill/BatchUpdates$Builder" since="28"> @@ -41030,6 +39778,8 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <implements name="android/service/autofill/Transformation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/CharSequenceTransformation$Builder;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/service/autofill/CharSequenceTransformation$Builder" since="27"> @@ -41041,19 +39791,22 @@ <class name="android/service/autofill/CustomDescription" since="27"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/CustomDescription$Builder;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/service/autofill/CustomDescription$Builder" since="27"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/widget/RemoteViews;)V"/> <method name="addChild(ILandroid/service/autofill/Transformation;)Landroid/service/autofill/CustomDescription$Builder;"/> - <method name="addOnClickAction(ILandroid/service/autofill/OnClickAction;)Landroid/service/autofill/CustomDescription$Builder;" since="29"/> <method name="batchUpdate(Landroid/service/autofill/Validator;Landroid/service/autofill/BatchUpdates;)Landroid/service/autofill/CustomDescription$Builder;" since="28"/> <method name="build()Landroid/service/autofill/CustomDescription;"/> </class> <class name="android/service/autofill/Dataset" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/Dataset$Builder;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/service/autofill/Dataset$Builder" since="26"> @@ -41084,22 +39837,28 @@ </class> <class name="android/service/autofill/FieldClassification" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/ArrayList;)V" since="29"/> <method name="getMatches()Ljava/util/List;"/> </class> <class name="android/service/autofill/FieldClassification$Match" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;F)V" since="29"/> <method name="getCategoryId()Ljava/lang/String;"/> <method name="getScore()F"/> </class> <class name="android/service/autofill/FillCallback" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="onFailure(Ljava/lang/CharSequence;)V"/> <method name="onSuccess(Landroid/service/autofill/FillResponse;)V"/> </class> <class name="android/service/autofill/FillContext" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="getFocusedId()Landroid/view/autofill/AutofillId;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getRequestId()I"/> <method name="getStructure()Landroid/app/assist/AssistStructure;"/> <field name="CREATOR"/> @@ -41107,12 +39866,16 @@ <class name="android/service/autofill/FillEventHistory" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILandroid/os/Bundle;)V" since="29"/> <method name="getClientState()Landroid/os/Bundle;" deprecated="28"/> <method name="getEvents()Ljava/util/List;"/> <field name="CREATOR"/> </class> <class name="android/service/autofill/FillEventHistory$Event" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;Landroid/os/Bundle;Ljava/util/List;Landroid/util/ArraySet;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;[Landroid/view/autofill/AutofillId;[Landroid/service/autofill/FieldClassification;)V" since="29"/> <method name="getChangedFields()Ljava/util/Map;" since="28"/> <method name="getClientState()Landroid/os/Bundle;" since="28"/> <method name="getDatasetId()Ljava/lang/String;"/> @@ -41130,17 +39893,20 @@ <class name="android/service/autofill/FillRequest" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getClientState()Landroid/os/Bundle;"/> <method name="getFillContexts()Ljava/util/List;"/> <method name="getFlags()I"/> <method name="getId()I"/> <field name="CREATOR"/> - <field name="FLAG_COMPATIBILITY_MODE_REQUEST" since="29"/> <field name="FLAG_MANUAL_REQUEST"/> </class> <class name="android/service/autofill/FillResponse" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/FillResponse$Builder;)V" since="29"/> <field name="CREATOR"/> <field name="FLAG_DISABLE_ACTIVITY_ONLY" since="28"/> <field name="FLAG_TRACK_CONTEXT_COMMITED" since="28"/> @@ -41159,12 +39925,13 @@ <method name="setHeader(Landroid/widget/RemoteViews;)Landroid/service/autofill/FillResponse$Builder;" since="28"/> <method name="setIgnoredIds([Landroid/view/autofill/AutofillId;)Landroid/service/autofill/FillResponse$Builder;"/> <method name="setSaveInfo(Landroid/service/autofill/SaveInfo;)Landroid/service/autofill/FillResponse$Builder;"/> - <method name="setUserData(Landroid/service/autofill/UserData;)Landroid/service/autofill/FillResponse$Builder;" since="29"/> </class> <class name="android/service/autofill/ImageTransformation" since="27"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <implements name="android/service/autofill/Transformation"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/ImageTransformation$Builder;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/service/autofill/ImageTransformation$Builder" since="27"> @@ -41182,9 +39949,6 @@ <method name="<init>([Landroid/view/autofill/AutofillId;)V"/> <field name="CREATOR"/> </class> - <class name="android/service/autofill/OnClickAction" since="29"> - <extends name="java/lang/Object"/> - </class> <class name="android/service/autofill/RegexValidator" since="27"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> @@ -41197,6 +39961,7 @@ </class> <class name="android/service/autofill/SaveCallback" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="onFailure(Ljava/lang/CharSequence;)V"/> <method name="onSuccess()V"/> <method name="onSuccess(Landroid/content/IntentSender;)V" since="28"/> @@ -41204,8 +39969,9 @@ <class name="android/service/autofill/SaveInfo" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/SaveInfo$Builder;)V" since="29"/> <field name="CREATOR"/> - <field name="FLAG_DELAY_SAVE" since="29"/> <field name="FLAG_DONT_SAVE_ON_FINISH" since="28"/> <field name="FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE"/> <field name="NEGATIVE_BUTTON_STYLE_CANCEL"/> @@ -41234,6 +40000,8 @@ <class name="android/service/autofill/SaveRequest" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getClientState()Landroid/os/Bundle;"/> <method name="getDatasetIds()Ljava/util/List;" since="28"/> <method name="getFillContexts()Ljava/util/List;"/> @@ -41252,8 +40020,9 @@ <class name="android/service/autofill/UserData" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/service/autofill/UserData$Builder;)V" since="29"/> <method name="getFieldClassificationAlgorithm()Ljava/lang/String;"/> - <method name="getFieldClassificationAlgorithmForCategory(Ljava/lang/String;)Ljava/lang/String;" since="29"/> <method name="getId()Ljava/lang/String;"/> <method name="getMaxCategoryCount()I"/> <method name="getMaxFieldClassificationIdsSize()I"/> @@ -41268,49 +40037,30 @@ <method name="add(Ljava/lang/String;Ljava/lang/String;)Landroid/service/autofill/UserData$Builder;"/> <method name="build()Landroid/service/autofill/UserData;"/> <method name="setFieldClassificationAlgorithm(Ljava/lang/String;Landroid/os/Bundle;)Landroid/service/autofill/UserData$Builder;"/> - <method name="setFieldClassificationAlgorithmForCategory(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/service/autofill/UserData$Builder;" since="29"/> </class> <class name="android/service/autofill/Validator" since="27"> <extends name="java/lang/Object"/> </class> <class name="android/service/autofill/Validators" since="27"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="and([Landroid/service/autofill/Validator;)Landroid/service/autofill/Validator;"/> <method name="not(Landroid/service/autofill/Validator;)Landroid/service/autofill/Validator;" since="28"/> <method name="or([Landroid/service/autofill/Validator;)Landroid/service/autofill/Validator;"/> </class> - <class name="android/service/autofill/VisibilitySetterAction" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <implements name="android/service/autofill/OnClickAction"/> - <field name="CREATOR"/> - </class> - <class name="android/service/autofill/VisibilitySetterAction$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(II)V"/> - <method name="build()Landroid/service/autofill/VisibilitySetterAction;"/> - <method name="setVisibility(II)Landroid/service/autofill/VisibilitySetterAction$Builder;"/> - </class> <class name="android/service/carrier/CarrierIdentifier" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V" since="29"/> <method name="<init>([BLjava/lang/String;Ljava/lang/String;)V" since="28"/> - <method name="getCarrierId()I" since="29"/> <method name="getGid1()Ljava/lang/String;"/> <method name="getGid2()Ljava/lang/String;"/> <method name="getImsi()Ljava/lang/String;"/> <method name="getMcc()Ljava/lang/String;"/> <method name="getMnc()Ljava/lang/String;"/> - <method name="getSpecificCarrierId()I" since="29"/> <method name="getSpn()Ljava/lang/String;"/> <field name="CREATOR"/> </class> - <class name="android/service/carrier/CarrierMessagingClientService" since="29"> - <extends name="android/app/Service"/> - <method name="<init>()V"/> - </class> <class name="android/service/carrier/CarrierMessagingService" since="22"> <extends name="android/app/Service"/> <method name="<init>()V"/> @@ -41449,6 +40199,8 @@ </class> <class name="android/service/media/MediaBrowserService$Result" since="21"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/service/media/MediaBrowserService;)V" removed="29"/> + <method name="<init>(Landroid/service/media/MediaBrowserService;Ljava/lang/Object;)V" since="29"/> <method name="detach()V"/> <method name="sendResult(Ljava/lang/Object;)V"/> </class> @@ -41479,22 +40231,22 @@ <field name="state"/> <field name="summary"/> </class> - <class name="android/service/notification/ConditionProviderService" since="24" deprecated="29"> + <class name="android/service/notification/ConditionProviderService" since="24"> <extends name="android/app/Service"/> - <method name="<init>()V" deprecated="29"/> - <method name="notifyCondition(Landroid/service/notification/Condition;)V" deprecated="29"/> - <method name="notifyConditions([Landroid/service/notification/Condition;)V" deprecated="29"/> - <method name="onConnected()V" deprecated="29"/> - <method name="onRequestConditions(I)V" deprecated="29"/> - <method name="onSubscribe(Landroid/net/Uri;)V" deprecated="29"/> - <method name="onUnsubscribe(Landroid/net/Uri;)V" deprecated="29"/> - <method name="requestRebind(Landroid/content/ComponentName;)V" since="26" deprecated="29"/> - <method name="requestUnbind()V" since="26" deprecated="29"/> - <field name="EXTRA_RULE_ID" deprecated="29"/> - <field name="META_DATA_CONFIGURATION_ACTIVITY" deprecated="29"/> - <field name="META_DATA_RULE_INSTANCE_LIMIT" deprecated="29"/> - <field name="META_DATA_RULE_TYPE" deprecated="29"/> - <field name="SERVICE_INTERFACE" deprecated="29"/> + <method name="<init>()V"/> + <method name="notifyCondition(Landroid/service/notification/Condition;)V"/> + <method name="notifyConditions([Landroid/service/notification/Condition;)V"/> + <method name="onConnected()V"/> + <method name="onRequestConditions(I)V"/> + <method name="onSubscribe(Landroid/net/Uri;)V"/> + <method name="onUnsubscribe(Landroid/net/Uri;)V"/> + <method name="requestRebind(Landroid/content/ComponentName;)V" since="26"/> + <method name="requestUnbind()V" since="26"/> + <field name="EXTRA_RULE_ID"/> + <field name="META_DATA_CONFIGURATION_ACTIVITY"/> + <field name="META_DATA_RULE_INSTANCE_LIMIT"/> + <field name="META_DATA_RULE_TYPE"/> + <field name="SERVICE_INTERFACE"/> </class> <class name="android/service/notification/NotificationListenerService" since="18"> <extends name="android/app/Service"/> @@ -41503,7 +40255,6 @@ <method name="cancelNotification(Ljava/lang/String;)V" since="21"/> <method name="cancelNotification(Ljava/lang/String;Ljava/lang/String;I)V" deprecated="21"/> <method name="cancelNotifications([Ljava/lang/String;)V" since="21"/> - <method name="clearRequestedListenerHints()V" since="29"/> <method name="getActiveNotifications()[Landroid/service/notification/StatusBarNotification;"/> <method name="getActiveNotifications([Ljava/lang/String;)[Landroid/service/notification/StatusBarNotification;" since="21"/> <method name="getCurrentInterruptionFilter()I" since="21"/> @@ -41524,7 +40275,6 @@ <method name="onNotificationRemoved(Landroid/service/notification/StatusBarNotification;)V"/> <method name="onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V" since="21"/> <method name="onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V" since="26"/> - <method name="onSilentStatusBarIconsVisibilityChanged(Z)V" since="29"/> <method name="requestInterruptionFilter(I)V" since="21"/> <method name="requestListenerHints(I)V" since="21"/> <method name="requestRebind(Landroid/content/ComponentName;)V" since="24"/> @@ -41569,17 +40319,13 @@ <class name="android/service/notification/NotificationListenerService$Ranking" since="21"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="canBubble()Z" since="29"/> <method name="canShowBadge()Z" since="26"/> <method name="getChannel()Landroid/app/NotificationChannel;" since="26"/> <method name="getImportance()I" since="24"/> <method name="getImportanceExplanation()Ljava/lang/CharSequence;" since="24"/> <method name="getKey()Ljava/lang/String;"/> - <method name="getLastAudiblyAlertedMillis()J" since="29"/> <method name="getOverrideGroupKey()Ljava/lang/String;" since="24"/> <method name="getRank()I"/> - <method name="getSmartActions()Ljava/util/List;" since="29"/> - <method name="getSmartReplies()Ljava/util/List;" since="29"/> <method name="getSuppressedVisualEffects()I" since="24"/> <method name="getUserSentiment()I" since="28"/> <method name="isAmbient()Z"/> @@ -41592,6 +40338,7 @@ <class name="android/service/notification/NotificationListenerService$RankingMap" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getOrderedKeys()[Ljava/lang/String;"/> <method name="getRanking(Ljava/lang/String;Landroid/service/notification/NotificationListenerService$Ranking;)Z"/> <field name="CREATOR"/> @@ -41606,12 +40353,10 @@ <method name="getId()I"/> <method name="getKey()Ljava/lang/String;" since="20"/> <method name="getNotification()Landroid/app/Notification;"/> - <method name="getOpPkg()Ljava/lang/String;" since="29"/> <method name="getOverrideGroupKey()Ljava/lang/String;" since="24"/> <method name="getPackageName()Ljava/lang/String;"/> <method name="getPostTime()J"/> <method name="getTag()Ljava/lang/String;"/> - <method name="getUid()I" since="29"/> <method name="getUser()Landroid/os/UserHandle;" since="21"/> <method name="getUserId()I" deprecated="21"/> <method name="isClearable()Z"/> @@ -41620,73 +40365,18 @@ <method name="setOverrideGroupKey(Ljava/lang/String;)V" since="24"/> <field name="CREATOR"/> </class> - <class name="android/service/notification/ZenPolicy" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getPriorityCallSenders()I"/> - <method name="getPriorityCategoryAlarms()I"/> - <method name="getPriorityCategoryCalls()I"/> - <method name="getPriorityCategoryEvents()I"/> - <method name="getPriorityCategoryMedia()I"/> - <method name="getPriorityCategoryMessages()I"/> - <method name="getPriorityCategoryReminders()I"/> - <method name="getPriorityCategoryRepeatCallers()I"/> - <method name="getPriorityCategorySystem()I"/> - <method name="getPriorityMessageSenders()I"/> - <method name="getVisualEffectAmbient()I"/> - <method name="getVisualEffectBadge()I"/> - <method name="getVisualEffectFullScreenIntent()I"/> - <method name="getVisualEffectLights()I"/> - <method name="getVisualEffectNotificationList()I"/> - <method name="getVisualEffectPeek()I"/> - <method name="getVisualEffectStatusBar()I"/> - <field name="CREATOR"/> - <field name="PEOPLE_TYPE_ANYONE"/> - <field name="PEOPLE_TYPE_CONTACTS"/> - <field name="PEOPLE_TYPE_NONE"/> - <field name="PEOPLE_TYPE_STARRED"/> - <field name="PEOPLE_TYPE_UNSET"/> - <field name="STATE_ALLOW"/> - <field name="STATE_DISALLOW"/> - <field name="STATE_UNSET"/> - </class> - <class name="android/service/notification/ZenPolicy$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="allowAlarms(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowAllSounds()Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowCalls(I)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowEvents(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowMedia(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowMessages(I)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowReminders(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowRepeatCallers(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="allowSystem(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="build()Landroid/service/notification/ZenPolicy;"/> - <method name="disallowAllSounds()Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="hideAllVisualEffects()Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showAllVisualEffects()Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showBadges(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showFullScreenIntent(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showInAmbientDisplay(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showInNotificationList(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showLights(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showPeeking(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - <method name="showStatusBarIcons(Z)Landroid/service/notification/ZenPolicy$Builder;"/> - </class> <class name="android/service/quicksettings/Tile" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getContentDescription()Ljava/lang/CharSequence;"/> <method name="getIcon()Landroid/graphics/drawable/Icon;"/> <method name="getLabel()Ljava/lang/CharSequence;"/> <method name="getState()I"/> - <method name="getSubtitle()Ljava/lang/CharSequence;" since="29"/> <method name="setContentDescription(Ljava/lang/CharSequence;)V"/> <method name="setIcon(Landroid/graphics/drawable/Icon;)V"/> <method name="setLabel(Ljava/lang/CharSequence;)V"/> <method name="setState(I)V"/> - <method name="setSubtitle(Ljava/lang/CharSequence;)V" since="29"/> <method name="updateTile()V"/> <field name="CREATOR"/> <field name="STATE_ACTIVE"/> @@ -41737,6 +40427,7 @@ </class> <class name="android/service/voice/AlwaysOnHotwordDetector" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createEnrollIntent()Landroid/content/Intent;"/> <method name="createReEnrollIntent()Landroid/content/Intent;"/> <method name="createUnEnrollIntent()Landroid/content/Intent;"/> @@ -41763,6 +40454,8 @@ </class> <class name="android/service/voice/AlwaysOnHotwordDetector$EventPayload" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ZZLandroid/media/AudioFormat;I[B)V" since="29"/> <method name="getCaptureAudioFormat()Landroid/media/AudioFormat;"/> <method name="getTriggerAudio()[B"/> </class> @@ -41772,12 +40465,10 @@ <method name="createAlwaysOnHotwordDetector(Ljava/lang/String;Ljava/util/Locale;Landroid/service/voice/AlwaysOnHotwordDetector$Callback;)Landroid/service/voice/AlwaysOnHotwordDetector;"/> <method name="getDisabledShowContext()I" since="23"/> <method name="isActiveService(Landroid/content/Context;Landroid/content/ComponentName;)Z"/> - <method name="onGetSupportedVoiceActions(Ljava/util/Set;)Ljava/util/Set;" since="29"/> <method name="onLaunchVoiceAssistFromKeyguard()V" since="23"/> <method name="onReady()V"/> <method name="onShutdown()V"/> <method name="setDisabledShowContext(I)V" since="23"/> - <method name="setUiHints(Landroid/os/Bundle;)V" since="29"/> <method name="showSession(Landroid/os/Bundle;I)V" since="23"/> <method name="startSession(Landroid/os/Bundle;)V" removed="23"/> <field name="SERVICE_INTERFACE"/> @@ -41807,11 +40498,9 @@ <method name="onCreate(Landroid/os/Bundle;)V" removed="23"/> <method name="onCreateContentView()Landroid/view/View;" since="23"/> <method name="onDestroy()V"/> - <method name="onDirectActionsInvalidated(Landroid/service/voice/VoiceInteractionSession$ActivityId;)V" since="29"/> <method name="onGetSupportedCommands([Ljava/lang/String;)[Z" since="23"/> - <method name="onHandleAssist(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;)V" since="23" deprecated="29"/> - <method name="onHandleAssist(Landroid/service/voice/VoiceInteractionSession$AssistState;)V" since="29"/> - <method name="onHandleAssistSecondary(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;II)V" since="24" deprecated="29"/> + <method name="onHandleAssist(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;)V" since="23"/> + <method name="onHandleAssistSecondary(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;II)V" since="24"/> <method name="onHandleScreenshot(Landroid/graphics/Bitmap;)V" since="23"/> <method name="onHide()V" since="23"/> <method name="onLockscreenShown()V" since="23"/> @@ -41824,8 +40513,6 @@ <method name="onShow(Landroid/os/Bundle;I)V" since="23"/> <method name="onTaskFinished(Landroid/content/Intent;I)V" since="23"/> <method name="onTaskStarted(Landroid/content/Intent;I)V" since="23"/> - <method name="performDirectAction(Landroid/app/DirectAction;Landroid/os/Bundle;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V" since="29"/> - <method name="requestDirectActions(Landroid/service/voice/VoiceInteractionSession$ActivityId;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V" since="29"/> <method name="setContentView(Landroid/view/View;)V"/> <method name="setDisabledShowContext(I)V" since="23"/> <method name="setKeepAwake(Z)V" since="23"/> @@ -41837,45 +40524,33 @@ <field name="SHOW_SOURCE_ACTIVITY" since="24"/> <field name="SHOW_SOURCE_APPLICATION" since="23"/> <field name="SHOW_SOURCE_ASSIST_GESTURE" since="23"/> - <field name="SHOW_SOURCE_AUTOMOTIVE_SYSTEM_UI" since="29"/> - <field name="SHOW_SOURCE_NOTIFICATION" since="29"/> - <field name="SHOW_SOURCE_PUSH_TO_TALK" since="29"/> <field name="SHOW_WITH_ASSIST" since="23"/> <field name="SHOW_WITH_SCREENSHOT" since="23"/> </class> <class name="android/service/voice/VoiceInteractionSession$AbortVoiceRequest" since="23"> <extends name="android/service/voice/VoiceInteractionSession$Request"/> + <method name="<init>()V"/> <method name="getMessage()Ljava/lang/CharSequence;" deprecated="23"/> <method name="getVoicePrompt()Landroid/app/VoiceInteractor$Prompt;"/> <method name="sendAbortResult(Landroid/os/Bundle;)V"/> </class> - <class name="android/service/voice/VoiceInteractionSession$ActivityId" since="29"> - <extends name="java/lang/Object"/> - </class> - <class name="android/service/voice/VoiceInteractionSession$AssistState" since="29"> - <extends name="java/lang/Object"/> - <method name="getActivityId()Landroid/service/voice/VoiceInteractionSession$ActivityId;"/> - <method name="getAssistContent()Landroid/app/assist/AssistContent;"/> - <method name="getAssistData()Landroid/os/Bundle;"/> - <method name="getAssistStructure()Landroid/app/assist/AssistStructure;"/> - <method name="getCount()I"/> - <method name="getIndex()I"/> - <method name="isFocused()Z"/> - </class> <class name="android/service/voice/VoiceInteractionSession$CommandRequest" since="23"> <extends name="android/service/voice/VoiceInteractionSession$Request"/> + <method name="<init>()V"/> <method name="getCommand()Ljava/lang/String;"/> <method name="sendIntermediateResult(Landroid/os/Bundle;)V"/> <method name="sendResult(Landroid/os/Bundle;)V"/> </class> <class name="android/service/voice/VoiceInteractionSession$CompleteVoiceRequest" since="23"> <extends name="android/service/voice/VoiceInteractionSession$Request"/> + <method name="<init>()V"/> <method name="getMessage()Ljava/lang/CharSequence;" deprecated="23"/> <method name="getVoicePrompt()Landroid/app/VoiceInteractor$Prompt;"/> <method name="sendCompleteResult(Landroid/os/Bundle;)V"/> </class> <class name="android/service/voice/VoiceInteractionSession$ConfirmationRequest" since="23"> <extends name="android/service/voice/VoiceInteractionSession$Request"/> + <method name="<init>()V"/> <method name="getPrompt()Ljava/lang/CharSequence;" deprecated="23"/> <method name="getVoicePrompt()Landroid/app/VoiceInteractor$Prompt;"/> <method name="sendConfirmationResult(ZLandroid/os/Bundle;)V"/> @@ -41892,6 +40567,7 @@ </class> <class name="android/service/voice/VoiceInteractionSession$PickOptionRequest" since="23"> <extends name="android/service/voice/VoiceInteractionSession$Request"/> + <method name="<init>()V"/> <method name="getOptions()[Landroid/app/VoiceInteractor$PickOptionRequest$Option;"/> <method name="getPrompt()Ljava/lang/CharSequence;" deprecated="23"/> <method name="getVoicePrompt()Landroid/app/VoiceInteractor$Prompt;"/> @@ -41900,6 +40576,7 @@ </class> <class name="android/service/voice/VoiceInteractionSession$Request" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="getCallingPackage()Ljava/lang/String;"/> <method name="getCallingUid()I"/> @@ -41931,7 +40608,6 @@ <method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="14"/> <method name="getDesiredMinimumHeight()I"/> <method name="getDesiredMinimumWidth()I"/> - <method name="getDisplayContext()Landroid/content/Context;" since="29"/> <method name="getSurfaceHolder()Landroid/view/SurfaceHolder;"/> <method name="isPreview()Z"/> <method name="isVisible()Z"/> @@ -41975,6 +40651,7 @@ </class> <class name="android/speech/RecognitionService$Callback" since="8"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/speech/RecognitionService;)V"/> <method name="beginningOfSpeech()V"/> <method name="bufferReceived([B)V"/> <method name="endOfSpeech()V"/> @@ -41987,6 +40664,7 @@ </class> <class name="android/speech/RecognizerIntent" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getVoiceDetailsIntent(Landroid/content/Context;)Landroid/content/Intent;" since="8"/> <field name="ACTION_GET_LANGUAGE_DETAILS" since="8"/> <field name="ACTION_RECOGNIZE_SPEECH"/> @@ -42023,6 +40701,7 @@ </class> <class name="android/speech/RecognizerResultsIntent" since="10"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ACTION_VOICE_SEARCH_RESULTS"/> <field name="EXTRA_VOICE_SEARCH_RESULT_HTML"/> <field name="EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS"/> @@ -42033,6 +40712,8 @@ </class> <class name="android/speech/SpeechRecognizer" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/content/ComponentName;)V" since="29"/> <method name="cancel()V"/> <method name="createSpeechRecognizer(Landroid/content/Context;)Landroid/speech/SpeechRecognizer;"/> <method name="createSpeechRecognizer(Landroid/content/Context;Landroid/content/ComponentName;)Landroid/speech/SpeechRecognizer;"/> @@ -42109,9 +40790,9 @@ <method name="playSilence(JILjava/util/HashMap;)I" deprecated="21"/> <method name="playSilentUtterance(JILjava/lang/String;)I" since="21"/> <method name="setAudioAttributes(Landroid/media/AudioAttributes;)I" since="21"/> - <method name="setEngineByPackageName(Ljava/lang/String;)I" since="8" deprecated="15"/> + <method name="setEngineByPackageName(Ljava/lang/String;)I" since="8" deprecated="16"/> <method name="setLanguage(Ljava/util/Locale;)I"/> - <method name="setOnUtteranceCompletedListener(Landroid/speech/tts/TextToSpeech$OnUtteranceCompletedListener;)I" deprecated="15"/> + <method name="setOnUtteranceCompletedListener(Landroid/speech/tts/TextToSpeech$OnUtteranceCompletedListener;)I" deprecated="16"/> <method name="setOnUtteranceProgressListener(Landroid/speech/tts/UtteranceProgressListener;)I" since="15"/> <method name="setPitch(F)I"/> <method name="setSpeechRate(F)I"/> @@ -42188,7 +40869,7 @@ </class> <class name="android/speech/tts/TextToSpeech$OnUtteranceCompletedListener" since="4" deprecated="18"> <extends name="java/lang/Object"/> - <method name="onUtteranceCompleted(Ljava/lang/String;)V" deprecated="29"/> + <method name="onUtteranceCompleted(Ljava/lang/String;)V"/> </class> <class name="android/speech/tts/TextToSpeechService" since="14"> <extends name="android/app/Service"/> @@ -42242,8 +40923,6 @@ <extends name="java/lang/Exception"/> <method name="<init>(Ljava/lang/String;I)V"/> <method name="<init>(Ljava/lang/String;ILjava/lang/Throwable;)V"/> - <method name="rethrowAsIOException()Ljava/io/IOException;" since="30"/> - <method name="rethrowAsSocketException()Ljava/net/SocketException;" since="30"/> <field name="errno"/> </class> <class name="android/system/Int64Ref" since="28"> @@ -42253,15 +40932,14 @@ </class> <class name="android/system/Os" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="accept(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)Ljava/io/FileDescriptor;"/> <method name="access(Ljava/lang/String;I)Z"/> <method name="bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V"/> - <method name="bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V" since="29"/> <method name="chmod(Ljava/lang/String;I)V"/> <method name="chown(Ljava/lang/String;II)V"/> <method name="close(Ljava/io/FileDescriptor;)V"/> <method name="connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V"/> - <method name="connect(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V" since="29"/> <method name="dup(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;"/> <method name="dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor;"/> <method name="environ()[Ljava/lang/String;"/> @@ -42283,7 +40961,6 @@ <method name="getpid()I"/> <method name="getppid()I"/> <method name="getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;"/> - <method name="getsockoptTimeval(Ljava/io/FileDescriptor;II)Landroid/system/StructTimeval;" since="29"/> <method name="gettid()I"/> <method name="getuid()I"/> <method name="getxattr(Ljava/lang/String;Ljava/lang/String;)[B" since="26"/> @@ -42328,15 +41005,13 @@ <method name="sendfile(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/util/MutableLong;J)J" removed="28"/> <method name="sendto(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetAddress;I)I"/> <method name="sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I"/> - <method name="sendto(Ljava/io/FileDescriptor;[BIIILjava/net/SocketAddress;)I" since="29"/> - <method name="setegid(I)V" deprecated="29"/> + <method name="setegid(I)V"/> <method name="setenv(Ljava/lang/String;Ljava/lang/String;Z)V"/> - <method name="seteuid(I)V" deprecated="29"/> - <method name="setgid(I)V" deprecated="29"/> + <method name="seteuid(I)V"/> + <method name="setgid(I)V"/> <method name="setsid()I"/> <method name="setsockoptInt(Ljava/io/FileDescriptor;III)V" since="26"/> - <method name="setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V" since="29"/> - <method name="setuid(I)V" deprecated="29"/> + <method name="setuid(I)V"/> <method name="setxattr(Ljava/lang/String;Ljava/lang/String;[BI)V" since="26"/> <method name="shutdown(Ljava/io/FileDescriptor;I)V"/> <method name="socket(III)Ljava/io/FileDescriptor;"/> @@ -42359,6 +41034,7 @@ </class> <class name="android/system/OsConstants" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="S_ISBLK(I)Z"/> <method name="S_ISCHR(I)Z"/> <method name="S_ISDIR(I)Z"/> @@ -42377,8 +41053,6 @@ <method name="gaiName(I)Ljava/lang/String;"/> <field name="AF_INET"/> <field name="AF_INET6"/> - <field name="AF_NETLINK" since="29"/> - <field name="AF_PACKET" since="29"/> <field name="AF_UNIX"/> <field name="AF_UNSPEC"/> <field name="AI_ADDRCONFIG"/> @@ -42388,7 +41062,6 @@ <field name="AI_NUMERICSERV"/> <field name="AI_PASSIVE"/> <field name="AI_V4MAPPED"/> - <field name="ARPHRD_ETHER" since="29"/> <field name="CAP_AUDIT_CONTROL"/> <field name="CAP_AUDIT_WRITE"/> <field name="CAP_BLOCK_SUSPEND"/> @@ -42512,10 +41185,6 @@ <field name="ESPIPE"/> <field name="ESRCH"/> <field name="ESTALE"/> - <field name="ETH_P_ALL" since="29"/> - <field name="ETH_P_ARP" since="29"/> - <field name="ETH_P_IP" since="29"/> - <field name="ETH_P_IPV6" since="29"/> <field name="ETIME"/> <field name="ETIMEDOUT"/> <field name="ETXTBSY"/> @@ -42542,10 +41211,6 @@ <field name="F_SETOWN"/> <field name="F_UNLCK"/> <field name="F_WRLCK"/> - <field name="ICMP6_ECHO_REPLY" since="29"/> - <field name="ICMP6_ECHO_REQUEST" since="29"/> - <field name="ICMP_ECHO" since="29"/> - <field name="ICMP_ECHOREPLY" since="29"/> <field name="IFA_F_DADFAILED"/> <field name="IFA_F_DEPRECATED"/> <field name="IFA_F_HOMEADDRESS"/> @@ -42617,8 +41282,6 @@ <field name="MS_ASYNC"/> <field name="MS_INVALIDATE"/> <field name="MS_SYNC"/> - <field name="NETLINK_INET_DIAG" since="29"/> - <field name="NETLINK_ROUTE" since="29"/> <field name="NI_DGRAM"/> <field name="NI_NAMEREQD"/> <field name="NI_NOFQDN"/> @@ -42655,7 +41318,6 @@ <field name="PR_GET_DUMPABLE"/> <field name="PR_SET_DUMPABLE"/> <field name="PR_SET_NO_NEW_PRIVS"/> - <field name="RTMGRP_NEIGH" since="29"/> <field name="RT_SCOPE_HOST"/> <field name="RT_SCOPE_LINK"/> <field name="RT_SCOPE_NOWHERE"/> @@ -42705,9 +41367,7 @@ <field name="SIOCGIFBRDADDR"/> <field name="SIOCGIFDSTADDR"/> <field name="SIOCGIFNETMASK"/> - <field name="SOCK_CLOEXEC" since="29"/> <field name="SOCK_DGRAM"/> - <field name="SOCK_NONBLOCK" since="29"/> <field name="SOCK_RAW"/> <field name="SOCK_SEQPACKET"/> <field name="SOCK_STREAM"/> @@ -42918,13 +41578,6 @@ <field name="tv_nsec"/> <field name="tv_sec"/> </class> - <class name="android/system/StructTimeval" since="29"> - <extends name="java/lang/Object"/> - <method name="fromMillis(J)Landroid/system/StructTimeval;"/> - <method name="toMillis()J"/> - <field name="tv_sec"/> - <field name="tv_usec"/> - </class> <class name="android/system/StructUtsname" since="21"> <extends name="java/lang/Object"/> <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"/> @@ -42936,6 +41589,7 @@ </class> <class name="android/telecom/Call" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="answer(I)V"/> <method name="conference(Landroid/telecom/Call;)V"/> <method name="deflect(Landroid/net/Uri;)V" since="28"/> @@ -42972,12 +41626,9 @@ <method name="swapConference()V"/> <method name="unhold()V"/> <method name="unregisterCallback(Landroid/telecom/Call$Callback;)V"/> - <field name="AVAILABLE_PHONE_ACCOUNTS" deprecated="29"/> + <field name="AVAILABLE_PHONE_ACCOUNTS"/> <field name="EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS" since="26"/> - <field name="EXTRA_SILENT_RINGING_REQUESTED" since="29"/> - <field name="EXTRA_SUGGESTED_PHONE_ACCOUNTS" since="29"/> <field name="STATE_ACTIVE"/> - <field name="STATE_AUDIO_PROCESSING" since="30"/> <field name="STATE_CONNECTING"/> <field name="STATE_DIALING"/> <field name="STATE_DISCONNECTED"/> @@ -42987,7 +41638,6 @@ <field name="STATE_PULLING_CALL" since="25"/> <field name="STATE_RINGING"/> <field name="STATE_SELECT_PHONE_ACCOUNT"/> - <field name="STATE_SIMULATED_RINGING" since="30"/> </class> <class name="android/telecom/Call$Callback" since="23"> <extends name="java/lang/Object"/> @@ -43016,12 +41666,13 @@ </class> <class name="android/telecom/Call$Details" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Landroid/net/Uri;ILjava/lang/String;ILandroid/telecom/PhoneAccountHandle;IILandroid/telecom/DisconnectCause;JLandroid/telecom/GatewayInfo;ILandroid/telecom/StatusHints;Landroid/os/Bundle;Landroid/os/Bundle;J)V" since="29"/> <method name="can(I)Z"/> <method name="can(II)Z"/> <method name="capabilitiesToString(I)Ljava/lang/String;"/> <method name="getAccountHandle()Landroid/telecom/PhoneAccountHandle;"/> <method name="getCallCapabilities()I"/> - <method name="getCallDirection()I" since="29"/> <method name="getCallProperties()I"/> <method name="getCallerDisplayName()Ljava/lang/String;"/> <method name="getCallerDisplayNamePresentation()I"/> @@ -43057,9 +41708,6 @@ <field name="CAPABILITY_SUPPORT_DEFLECT" since="28"/> <field name="CAPABILITY_SUPPORT_HOLD"/> <field name="CAPABILITY_SWAP_CONFERENCE"/> - <field name="DIRECTION_INCOMING" since="29"/> - <field name="DIRECTION_OUTGOING" since="29"/> - <field name="DIRECTION_UNKNOWN" since="29"/> <field name="PROPERTY_CONFERENCE"/> <field name="PROPERTY_EMERGENCY_CALLBACK_MODE"/> <field name="PROPERTY_ENTERPRISE_CALL" since="24"/> @@ -43067,14 +41715,13 @@ <field name="PROPERTY_HAS_CDMA_VOICE_PRIVACY" since="25"/> <field name="PROPERTY_HIGH_DEF_AUDIO"/> <field name="PROPERTY_IS_EXTERNAL_CALL" since="25"/> - <field name="PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL" since="29"/> <field name="PROPERTY_RTT" since="28"/> <field name="PROPERTY_SELF_MANAGED" since="26"/> - <field name="PROPERTY_VOIP_AUDIO_MODE" since="29"/> <field name="PROPERTY_WIFI"/> </class> <class name="android/telecom/Call$RttCall" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getRttAudioMode()I"/> <method name="read()Ljava/lang/String;"/> <method name="readImmediately()Ljava/lang/String;" since="27"/> @@ -43101,15 +41748,6 @@ <field name="ROUTE_WIRED_HEADSET"/> <field name="ROUTE_WIRED_OR_EARPIECE"/> </class> - <class name="android/telecom/CallRedirectionService" since="29"> - <extends name="android/app/Service"/> - <method name="<init>()V"/> - <method name="cancelCall()V"/> - <method name="onPlaceCall(Landroid/net/Uri;Landroid/telecom/PhoneAccountHandle;Z)V"/> - <method name="placeCallUnmodified()V"/> - <method name="redirectCall(Landroid/net/Uri;Landroid/telecom/PhoneAccountHandle;Z)V"/> - <field name="SERVICE_INTERFACE"/> - </class> <class name="android/telecom/CallScreeningService" since="24"> <extends name="android/app/Service"/> <method name="<init>()V"/> @@ -43119,9 +41757,10 @@ </class> <class name="android/telecom/CallScreeningService$CallResponse" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ZZZZ)V" since="29"/> <method name="getDisallowCall()Z"/> <method name="getRejectCall()Z"/> - <method name="getSilenceCall()Z" since="29"/> <method name="getSkipCallLog()Z"/> <method name="getSkipNotification()Z"/> </class> @@ -43131,7 +41770,6 @@ <method name="build()Landroid/telecom/CallScreeningService$CallResponse;"/> <method name="setDisallowCall(Z)Landroid/telecom/CallScreeningService$CallResponse$Builder;"/> <method name="setRejectCall(Z)Landroid/telecom/CallScreeningService$CallResponse$Builder;"/> - <method name="setSilenceCall(Z)Landroid/telecom/CallScreeningService$CallResponse$Builder;" since="29"/> <method name="setSkipCallLog(Z)Landroid/telecom/CallScreeningService$CallResponse$Builder;"/> <method name="setSkipNotification(Z)Landroid/telecom/CallScreeningService$CallResponse$Builder;"/> </class> @@ -43186,6 +41824,7 @@ </class> <class name="android/telecom/Conferenceable" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/telecom/Connection" since="23"> <extends name="android/telecom/Conferenceable"/> @@ -43272,7 +41911,7 @@ <field name="CAPABILITY_CAN_PAUSE_VIDEO"/> <field name="CAPABILITY_CAN_PULL_CALL" since="25"/> <field name="CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION" since="24"/> - <field name="CAPABILITY_CAN_UPGRADE_TO_VIDEO" deprecated="29"/> + <field name="CAPABILITY_CAN_UPGRADE_TO_VIDEO"/> <field name="CAPABILITY_DISCONNECT_FROM_CONFERENCE"/> <field name="CAPABILITY_HOLD"/> <field name="CAPABILITY_MANAGE_CONFERENCE"/> @@ -43291,14 +41930,11 @@ <field name="CAPABILITY_SWAP_CONFERENCE"/> <field name="EVENT_CALL_MERGE_FAILED" since="25"/> <field name="EVENT_CALL_PULL_FAILED" since="25"/> - <field name="EVENT_RTT_AUDIO_INDICATION_CHANGED" since="29"/> <field name="EXTRA_ANSWERING_DROPS_FG_CALL" since="25"/> <field name="EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME" since="26"/> <field name="EXTRA_CALL_SUBJECT"/> <field name="EXTRA_CHILD_ADDRESS"/> - <field name="EXTRA_IS_RTT_AUDIO_PRESENT" since="29"/> <field name="EXTRA_LAST_FORWARDED_NUMBER"/> - <field name="EXTRA_SIP_INVITE" since="29"/> <field name="PROPERTY_HAS_CDMA_VOICE_PRIVACY" since="25"/> <field name="PROPERTY_IS_EXTERNAL_CALL" since="25"/> <field name="PROPERTY_IS_RTT" since="28"/> @@ -43314,6 +41950,7 @@ </class> <class name="android/telecom/Connection$RttModifyStatus" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="SESSION_MODIFY_REQUEST_FAIL"/> <field name="SESSION_MODIFY_REQUEST_INVALID"/> <field name="SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE"/> @@ -43322,6 +41959,8 @@ </class> <class name="android/telecom/Connection$RttTextStream" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V" since="29"/> <method name="read()Ljava/lang/String;"/> <method name="readImmediately()Ljava/lang/String;"/> <method name="write(Ljava/lang/String;)V"/> @@ -43483,6 +42122,8 @@ <class name="android/telecom/PhoneAccount" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="builder(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;"/> <method name="getAccountHandle()Landroid/telecom/PhoneAccountHandle;"/> <method name="getAddress()Landroid/net/Uri;"/> @@ -43545,22 +42186,9 @@ <method name="getUserHandle()Landroid/os/UserHandle;"/> <field name="CREATOR"/> </class> - <class name="android/telecom/PhoneAccountSuggestion" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Landroid/telecom/PhoneAccountHandle;IZ)V"/> - <method name="getPhoneAccountHandle()Landroid/telecom/PhoneAccountHandle;"/> - <method name="getReason()I"/> - <method name="shouldAutoSelect()Z"/> - <field name="CREATOR"/> - <field name="REASON_FREQUENT"/> - <field name="REASON_INTRA_CARRIER"/> - <field name="REASON_NONE"/> - <field name="REASON_OTHER"/> - <field name="REASON_USER_SET"/> - </class> <class name="android/telecom/RemoteConference" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="disconnect()V"/> <method name="getConferenceableConnections()Ljava/util/List;"/> <method name="getConnectionCapabilities()I"/> @@ -43596,6 +42224,8 @@ </class> <class name="android/telecom/RemoteConnection" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/telecom/DisconnectCause;)V" since="29"/> <method name="abort()V"/> <method name="answer()V"/> <method name="disconnect()V"/> @@ -43651,6 +42281,7 @@ </class> <class name="android/telecom/RemoteConnection$VideoProvider" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="registerCallback(Landroid/telecom/RemoteConnection$VideoProvider$Callback;)V"/> <method name="requestCallDataUsage()V"/> <method name="requestCameraCapabilities()V"/> @@ -43686,13 +42317,15 @@ </class> <class name="android/telecom/TelecomManager" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="acceptHandover(Landroid/net/Uri;ILandroid/telecom/PhoneAccountHandle;)V" since="28"/> - <method name="acceptRingingCall()V" since="26" deprecated="29"/> - <method name="acceptRingingCall(I)V" since="26" deprecated="29"/> + <method name="acceptRingingCall()V" since="26"/> + <method name="acceptRingingCall(I)V" since="26"/> <method name="addNewIncomingCall(Landroid/telecom/PhoneAccountHandle;Landroid/os/Bundle;)V" since="23"/> <method name="cancelMissedCallsNotification()V"/> <method name="createManageBlockedNumbersIntent()Landroid/content/Intent;" since="24"/> - <method name="endCall()Z" since="28" deprecated="29"/> + <method name="endCall()Z" since="29"/> <method name="getAdnUriForPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/net/Uri;" since="23"/> <method name="getCallCapablePhoneAccounts()Ljava/util/List;" since="23"/> <method name="getDefaultDialerPackage()Ljava/lang/String;" since="23"/> @@ -43701,8 +42334,6 @@ <method name="getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;" since="23"/> <method name="getSelfManagedPhoneAccounts()Ljava/util/List;" since="26"/> <method name="getSimCallManager()Landroid/telecom/PhoneAccountHandle;" since="23"/> - <method name="getSystemDialerPackage()Ljava/lang/String;" since="29"/> - <method name="getUserSelectedOutgoingPhoneAccount()Landroid/telecom/PhoneAccountHandle;" since="29"/> <method name="getVoiceMailNumber(Landroid/telecom/PhoneAccountHandle;)Ljava/lang/String;" since="23"/> <method name="handleMmi(Ljava/lang/String;)Z"/> <method name="handleMmi(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;)Z" since="23"/> @@ -43720,7 +42351,6 @@ <field name="ACTION_CHANGE_DEFAULT_DIALER" since="23"/> <field name="ACTION_CHANGE_PHONE_ACCOUNTS" since="23"/> <field name="ACTION_CONFIGURE_PHONE_ACCOUNT" since="23"/> - <field name="ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED" since="29"/> <field name="ACTION_DEFAULT_DIALER_CHANGED" since="23"/> <field name="ACTION_INCOMING_CALL" since="23" deprecated="26"/> <field name="ACTION_PHONE_ACCOUNT_REGISTERED" since="26"/> @@ -43734,14 +42364,11 @@ <field name="EXTRA_CALL_BACK_NUMBER" since="23"/> <field name="EXTRA_CALL_DISCONNECT_CAUSE"/> <field name="EXTRA_CALL_DISCONNECT_MESSAGE"/> - <field name="EXTRA_CALL_NETWORK_TYPE" since="29"/> <field name="EXTRA_CALL_SUBJECT" since="23"/> <field name="EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME" since="23"/> - <field name="EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME" since="29"/> <field name="EXTRA_INCOMING_CALL_ADDRESS" since="23"/> <field name="EXTRA_INCOMING_CALL_EXTRAS" since="23"/> <field name="EXTRA_INCOMING_VIDEO_STATE" since="26"/> - <field name="EXTRA_IS_DEFAULT_CALL_SCREENING_APP" since="29"/> <field name="EXTRA_NOTIFICATION_COUNT" since="24"/> <field name="EXTRA_NOTIFICATION_PHONE_NUMBER" since="24"/> <field name="EXTRA_OUTGOING_CALL_EXTRAS" since="23"/> @@ -43753,7 +42380,6 @@ <field name="GATEWAY_PROVIDER_PACKAGE"/> <field name="METADATA_INCLUDE_EXTERNAL_CALLS" since="25"/> <field name="METADATA_INCLUDE_SELF_MANAGED_CALLS" since="26"/> - <field name="METADATA_IN_CALL_SERVICE_CAR_MODE_UI" since="29"/> <field name="METADATA_IN_CALL_SERVICE_RINGING" since="24"/> <field name="METADATA_IN_CALL_SERVICE_UI" since="23"/> <field name="PRESENTATION_ALLOWED"/> @@ -43790,18 +42416,17 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>(II)V"/> - <method name="<init>(IIZF)V" since="29"/> <method name="getHeight()I"/> - <method name="getMaxZoom()F" since="29"/> <method name="getWidth()I"/> - <method name="isZoomSupported()Z" since="29"/> <field name="CREATOR"/> </class> <class name="android/telephony/AccessNetworkConstants" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/telephony/AccessNetworkConstants$AccessNetworkType" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CDMA2000"/> <field name="EUTRAN"/> <field name="GERAN"/> @@ -43811,6 +42436,7 @@ </class> <class name="android/telephony/AccessNetworkConstants$EutranBand" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BAND_1"/> <field name="BAND_10"/> <field name="BAND_11"/> @@ -43862,6 +42488,7 @@ </class> <class name="android/telephony/AccessNetworkConstants$GeranBand" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BAND_450"/> <field name="BAND_480"/> <field name="BAND_710"/> @@ -43879,6 +42506,7 @@ </class> <class name="android/telephony/AccessNetworkConstants$UtranBand" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BAND_1"/> <field name="BAND_10"/> <field name="BAND_11"/> @@ -43900,23 +42528,11 @@ <field name="BAND_8"/> <field name="BAND_9"/> </class> - <class name="android/telephony/AvailableNetworkInfo" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(IILjava/util/List;Ljava/util/List;)V"/> - <method name="getBands()Ljava/util/List;"/> - <method name="getMccMncs()Ljava/util/List;"/> - <method name="getPriority()I"/> - <method name="getSubId()I"/> - <field name="CREATOR"/> - <field name="PRIORITY_HIGH"/> - <field name="PRIORITY_LOW"/> - <field name="PRIORITY_MED"/> - </class> <class name="android/telephony/CarrierConfigManager" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="getConfig()Landroid/os/PersistableBundle;"/> - <method name="getConfigByComponentForSubId(Ljava/lang/String;I)Landroid/os/PersistableBundle;" since="30"/> <method name="getConfigForSubId(I)Landroid/os/PersistableBundle;"/> <method name="isConfigForIdentifiedCarrier(Landroid/os/PersistableBundle;)Z" since="28"/> <method name="notifyConfigChangedForSubId(I)V"/> @@ -43935,16 +42551,9 @@ <field name="KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL" since="24"/> <field name="KEY_APN_EXPAND_BOOL"/> <field name="KEY_AUTO_RETRY_ENABLED_BOOL"/> - <field name="KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL" since="29"/> - <field name="KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL" since="29"/> - <field name="KEY_CALL_BARRING_VISIBILITY_BOOL" since="29"/> <field name="KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY" since="26"/> <field name="KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL"/> - <field name="KEY_CARRIER_CALL_SCREENING_APP_STRING" since="29"/> - <field name="KEY_CARRIER_CONFIG_VERSION_STRING" since="29"/> <field name="KEY_CARRIER_DATA_CALL_PERMANENT_FAILURE_STRINGS" since="26"/> - <field name="KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT" since="29"/> - <field name="KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT" since="29"/> <field name="KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL" since="24"/> <field name="KEY_CARRIER_IMS_GBA_REQUIRED_BOOL" since="24"/> <field name="KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL" since="24"/> @@ -43955,9 +42564,7 @@ <field name="KEY_CARRIER_NAME_OVERRIDE_BOOL" since="28"/> <field name="KEY_CARRIER_NAME_STRING" since="28"/> <field name="KEY_CARRIER_SETTINGS_ENABLE_BOOL"/> - <field name="KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL" since="29"/> <field name="KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL" since="24"/> - <field name="KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL" since="29"/> <field name="KEY_CARRIER_VOLTE_AVAILABLE_BOOL"/> <field name="KEY_CARRIER_VOLTE_PROVISIONED_BOOL" since="26"/> <field name="KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL"/> @@ -43983,11 +42590,9 @@ <field name="KEY_DATA_LIMIT_THRESHOLD_BYTES_LONG" since="26"/> <field name="KEY_DATA_WARNING_THRESHOLD_BYTES_LONG" since="26"/> <field name="KEY_DEFAULT_SIM_CALL_MANAGER_STRING"/> - <field name="KEY_DEFAULT_VM_NUMBER_ROAMING_AND_IMS_UNREGISTERED_STRING" since="30"/> <field name="KEY_DEFAULT_VM_NUMBER_STRING" since="26"/> <field name="KEY_DIAL_STRING_REPLACE_STRING_ARRAY" since="26"/> <field name="KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL"/> - <field name="KEY_DISCONNECT_CAUSE_PLAY_BUSYTONE_INT_ARRAY" since="30"/> <field name="KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL" since="27"/> <field name="KEY_DROP_VIDEO_CALL_WHEN_ANSWERING_AUDIO_CALL_BOOL" since="25"/> <field name="KEY_DTMF_TYPE_ENABLED_BOOL"/> @@ -43995,9 +42600,7 @@ <field name="KEY_EDITABLE_ENHANCED_4G_LTE_BOOL" since="24"/> <field name="KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL" since="26"/> <field name="KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL" since="28"/> - <field name="KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY" since="29"/> <field name="KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL"/> - <field name="KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL" since="29"/> <field name="KEY_FORCE_HOME_NETWORK_BOOL"/> <field name="KEY_GSM_DTMF_TONE_DELAY_INT" since="24"/> <field name="KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY"/> @@ -44007,7 +42610,6 @@ <field name="KEY_HIDE_ENHANCED_4G_LTE_BOOL" since="26"/> <field name="KEY_HIDE_IMS_APN_BOOL" since="24"/> <field name="KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL" since="24"/> - <field name="KEY_HIDE_PRESET_APN_DETAILS_BOOL" since="29"/> <field name="KEY_HIDE_SIM_LOCK_SETTINGS_BOOL"/> <field name="KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL"/> <field name="KEY_IMS_CONFERENCE_SIZE_LIMIT_INT" since="26"/> @@ -44048,21 +42650,12 @@ <field name="KEY_MONTHLY_DATA_CYCLE_DAY_INT" since="26"/> <field name="KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY" since="26"/> <field name="KEY_OPERATOR_SELECTION_EXPAND_BOOL"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG" since="29"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_ENTRY_OR_EXIT_HYSTERESIS_TIME_LONG" since="29"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_BANDWIDTH_INT" since="29"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSRP_INT" since="29"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSSNR_INT" since="29"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT" since="29"/> - <field name="KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT" since="29"/> <field name="KEY_PREFER_2G_BOOL"/> - <field name="KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY" since="29"/> <field name="KEY_RCS_CONFIG_SERVER_URL_STRING" since="26"/> <field name="KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL" since="24"/> - <field name="KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL" since="26" deprecated="29"/> + <field name="KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL" since="26"/> <field name="KEY_RTT_SUPPORTED_BOOL" since="28"/> <field name="KEY_SHOW_APN_SETTING_CDMA_BOOL"/> - <field name="KEY_SHOW_CALL_BLOCKING_DISABLED_NOTIFICATION_ALWAYS_BOOL" since="29"/> <field name="KEY_SHOW_CDMA_CHOICES_BOOL"/> <field name="KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL" since="24"/> <field name="KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL"/> @@ -44071,17 +42664,14 @@ <field name="KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL"/> <field name="KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL" since="26"/> <field name="KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL" since="26"/> - <field name="KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL" since="29"/> <field name="KEY_SUPPORT_CONFERENCE_CALL_BOOL" since="24"/> <field name="KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL" since="29"/> <field name="KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL"/> <field name="KEY_SUPPORT_SWAP_AFTER_MERGE_BOOL"/> <field name="KEY_TREAT_DOWNGRADED_VIDEO_CALLS_AS_VIDEO_CALLS_BOOL" since="25"/> - <field name="KEY_TTY_SUPPORTED_BOOL" since="29"/> <field name="KEY_USE_HFA_FOR_PROVISIONING_BOOL"/> <field name="KEY_USE_OTASP_FOR_PROVISIONING_BOOL"/> <field name="KEY_USE_RCS_PRESENCE_BOOL" since="24"/> - <field name="KEY_USE_RCS_SIP_OPTIONS_BOOL" since="30"/> <field name="KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL"/> <field name="KEY_VOICE_PRIVACY_DISABLE_UI_BOOL"/> <field name="KEY_VOLTE_REPLACEMENT_RAT_INT"/> @@ -44096,13 +42686,11 @@ <field name="KEY_VVM_TYPE_STRING"/> <field name="KEY_WORLD_PHONE_BOOL"/> </class> - <class name="android/telephony/CarrierConfigManager$Ims" since="30"> - <extends name="java/lang/Object"/> - <field name="KEY_PREFIX"/> - </class> <class name="android/telephony/CellIdentity" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;ILandroid/os/Parcel;)V" since="29"/> <method name="getOperatorAlphaLong()Ljava/lang/CharSequence;"/> <method name="getOperatorAlphaShort()Ljava/lang/CharSequence;"/> <field name="CREATOR"/> @@ -44111,6 +42699,7 @@ <extends name="android/telephony/CellIdentity" since="28"/> <extends name="java/lang/Object" removed="28"/> <implements name="android/os/Parcelable" removed="28"/> + <method name="<init>()V"/> <method name="getBasestationId()I"/> <method name="getLatitude()I"/> <method name="getLongitude()I"/> @@ -44122,6 +42711,7 @@ <extends name="android/telephony/CellIdentity" since="28"/> <extends name="java/lang/Object" removed="28"/> <implements name="android/os/Parcelable" removed="28"/> + <method name="<init>()V"/> <method name="getArfcn()I" since="24"/> <method name="getBsic()I" since="24"/> <method name="getCid()I"/> @@ -44138,6 +42728,7 @@ <extends name="android/telephony/CellIdentity" since="28"/> <extends name="java/lang/Object" removed="28"/> <implements name="android/os/Parcelable" removed="28"/> + <method name="<init>()V"/> <method name="getBandwidth()I" since="28"/> <method name="getCi()I"/> <method name="getEarfcn()I" since="24"/> @@ -44150,31 +42741,21 @@ <method name="getTac()I"/> <field name="CREATOR"/> </class> - <class name="android/telephony/CellIdentityNr" since="29"> - <extends name="android/telephony/CellIdentity"/> - <method name="getMccString()Ljava/lang/String;"/> - <method name="getMncString()Ljava/lang/String;"/> - <method name="getNci()J"/> - <method name="getNrarfcn()I"/> - <method name="getPci()I"/> - <method name="getTac()I"/> - <field name="CREATOR"/> - </class> <class name="android/telephony/CellIdentityTdscdma" since="28"> <extends name="android/telephony/CellIdentity"/> + <method name="<init>()V"/> <method name="getCid()I"/> <method name="getCpid()I"/> <method name="getLac()I"/> <method name="getMccString()Ljava/lang/String;"/> <method name="getMncString()Ljava/lang/String;"/> - <method name="getMobileNetworkOperator()Ljava/lang/String;" since="29"/> - <method name="getUarfcn()I" since="29"/> <field name="CREATOR"/> </class> <class name="android/telephony/CellIdentityWcdma" since="18"> <extends name="android/telephony/CellIdentity" since="28"/> <extends name="java/lang/Object" removed="28"/> <implements name="android/os/Parcelable" removed="28"/> + <method name="<init>()V"/> <method name="getCid()I"/> <method name="getLac()I"/> <method name="getMcc()I" deprecated="28"/> @@ -44189,6 +42770,7 @@ <class name="android/telephony/CellInfo" since="17"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getCellConnectionStatus()I" since="28"/> <method name="getTimeStamp()J"/> <method name="isRegistered()Z"/> @@ -44197,41 +42779,31 @@ <field name="CONNECTION_SECONDARY_SERVING" since="28"/> <field name="CONNECTION_UNKNOWN" since="28"/> <field name="CREATOR"/> - <field name="UNAVAILABLE" since="29"/> - <field name="UNAVAILABLE_LONG" since="29"/> </class> <class name="android/telephony/CellInfoCdma" since="17"> <extends name="android/telephony/CellInfo"/> + <method name="<init>()V"/> <method name="getCellIdentity()Landroid/telephony/CellIdentityCdma;"/> <method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthCdma;"/> <field name="CREATOR"/> </class> <class name="android/telephony/CellInfoGsm" since="17"> <extends name="android/telephony/CellInfo"/> + <method name="<init>()V"/> <method name="getCellIdentity()Landroid/telephony/CellIdentityGsm;"/> <method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthGsm;"/> <field name="CREATOR"/> </class> <class name="android/telephony/CellInfoLte" since="17"> <extends name="android/telephony/CellInfo"/> + <method name="<init>()V"/> <method name="getCellIdentity()Landroid/telephony/CellIdentityLte;"/> <method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthLte;"/> <field name="CREATOR"/> </class> - <class name="android/telephony/CellInfoNr" since="29"> - <extends name="android/telephony/CellInfo"/> - <method name="getCellIdentity()Landroid/telephony/CellIdentity;"/> - <method name="getCellSignalStrength()Landroid/telephony/CellSignalStrength;"/> - <field name="CREATOR"/> - </class> - <class name="android/telephony/CellInfoTdscdma" since="29"> - <extends name="android/telephony/CellInfo"/> - <method name="getCellIdentity()Landroid/telephony/CellIdentityTdscdma;"/> - <method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthTdscdma;"/> - <field name="CREATOR"/> - </class> <class name="android/telephony/CellInfoWcdma" since="18"> <extends name="android/telephony/CellInfo"/> + <method name="<init>()V"/> <method name="getCellIdentity()Landroid/telephony/CellIdentityWcdma;"/> <method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthWcdma;"/> <field name="CREATOR"/> @@ -44244,6 +42816,7 @@ </class> <class name="android/telephony/CellSignalStrength" since="17"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAsuLevel()I"/> <method name="getDbm()I"/> <method name="getLevel()I"/> @@ -44256,6 +42829,7 @@ <class name="android/telephony/CellSignalStrengthCdma" since="17"> <extends name="android/telephony/CellSignalStrength"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getCdmaDbm()I"/> <method name="getCdmaEcio()I"/> <method name="getCdmaLevel()I"/> @@ -44268,47 +42842,32 @@ <class name="android/telephony/CellSignalStrengthGsm" since="17"> <extends name="android/telephony/CellSignalStrength"/> <implements name="android/os/Parcelable"/> - <method name="getBitErrorRate()I" since="29"/> - <method name="getRssi()I" since="30"/> + <method name="<init>()V"/> <method name="getTimingAdvance()I" since="26"/> <field name="CREATOR"/> </class> <class name="android/telephony/CellSignalStrengthLte" since="17"> <extends name="android/telephony/CellSignalStrength"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getCqi()I" since="26"/> <method name="getRsrp()I" since="26"/> <method name="getRsrq()I" since="26"/> - <method name="getRssi()I" since="29"/> <method name="getRssnr()I" since="26"/> <method name="getTimingAdvance()I"/> <field name="CREATOR"/> </class> - <class name="android/telephony/CellSignalStrengthNr" since="29"> - <extends name="android/telephony/CellSignalStrength"/> - <implements name="android/os/Parcelable"/> - <method name="getCsiRsrp()I"/> - <method name="getCsiRsrq()I"/> - <method name="getCsiSinr()I"/> - <method name="getSsRsrp()I"/> - <method name="getSsRsrq()I"/> - <method name="getSsSinr()I"/> - <field name="CREATOR"/> - </class> - <class name="android/telephony/CellSignalStrengthTdscdma" since="29"> - <extends name="android/telephony/CellSignalStrength"/> - <implements name="android/os/Parcelable"/> - <method name="getRscp()I"/> - <field name="CREATOR"/> - </class> <class name="android/telephony/CellSignalStrengthWcdma" since="18"> <extends name="android/telephony/CellSignalStrength"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> </class> <class name="android/telephony/IccOpenLogicalChannelResponse" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getChannel()I"/> <method name="getSelectResponse()[B"/> <method name="getStatus()I"/> @@ -44322,6 +42881,8 @@ <class name="android/telephony/MbmsDownloadSession" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Ljava/util/concurrent/Executor;ILandroid/telephony/mbms/MbmsDownloadSessionCallback;)V" since="29"/> <method name="addProgressListener(Landroid/telephony/mbms/DownloadRequest;Ljava/util/concurrent/Executor;Landroid/telephony/mbms/DownloadProgressListener;)V"/> <method name="addStatusListener(Landroid/telephony/mbms/DownloadRequest;Ljava/util/concurrent/Executor;Landroid/telephony/mbms/DownloadStatusListener;)V"/> <method name="cancelDownload(Landroid/telephony/mbms/DownloadRequest;)V"/> @@ -44355,41 +42916,38 @@ <field name="STATUS_PENDING_REPAIR"/> <field name="STATUS_UNKNOWN"/> </class> - <class name="android/telephony/MbmsGroupCallSession" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable"/> - <method name="create(Landroid/content/Context;ILjava/util/concurrent/Executor;Landroid/telephony/mbms/MbmsGroupCallSessionCallback;)Landroid/telephony/MbmsGroupCallSession;"/> - <method name="create(Landroid/content/Context;Ljava/util/concurrent/Executor;Landroid/telephony/mbms/MbmsGroupCallSessionCallback;)Landroid/telephony/MbmsGroupCallSession;"/> - <method name="startGroupCall(JLjava/util/List;Ljava/util/List;Ljava/util/concurrent/Executor;Landroid/telephony/mbms/GroupCallCallback;)Landroid/telephony/mbms/GroupCall;"/> - </class> <class name="android/telephony/MbmsStreamingSession" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Ljava/util/concurrent/Executor;ILandroid/telephony/mbms/MbmsStreamingSessionCallback;)V" since="29"/> <method name="create(Landroid/content/Context;Ljava/util/concurrent/Executor;ILandroid/telephony/mbms/MbmsStreamingSessionCallback;)Landroid/telephony/MbmsStreamingSession;"/> <method name="create(Landroid/content/Context;Ljava/util/concurrent/Executor;Landroid/telephony/mbms/MbmsStreamingSessionCallback;)Landroid/telephony/MbmsStreamingSession;"/> <method name="requestUpdateStreamingServices(Ljava/util/List;)V"/> <method name="startStreaming(Landroid/telephony/mbms/StreamingServiceInfo;Ljava/util/concurrent/Executor;Landroid/telephony/mbms/StreamingServiceCallback;)Landroid/telephony/mbms/StreamingService;"/> </class> - <class name="android/telephony/NeighboringCellInfo" since="3" deprecated="29"> + <class name="android/telephony/NeighboringCellInfo" since="3"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="<init>()V" deprecated="15"/> - <method name="<init>(II)V" deprecated="15"/> - <method name="<init>(ILjava/lang/String;I)V" since="7" deprecated="29"/> - <method name="<init>(Landroid/os/Parcel;)V" deprecated="29"/> - <method name="getCid()I" deprecated="29"/> - <method name="getLac()I" since="5" deprecated="29"/> - <method name="getNetworkType()I" since="5" deprecated="29"/> - <method name="getPsc()I" since="5" deprecated="29"/> - <method name="getRssi()I" deprecated="29"/> - <method name="setCid(I)V" deprecated="15"/> - <method name="setRssi(I)V" deprecated="15"/> - <field name="CREATOR" deprecated="29"/> - <field name="UNKNOWN_CID" deprecated="29"/> - <field name="UNKNOWN_RSSI" deprecated="29"/> + <method name="<init>()V" deprecated="16"/> + <method name="<init>(II)V" deprecated="16"/> + <method name="<init>(ILjava/lang/String;I)V" since="7"/> + <method name="<init>(Landroid/os/Parcel;)V"/> + <method name="getCid()I"/> + <method name="getLac()I" since="5"/> + <method name="getNetworkType()I" since="5"/> + <method name="getPsc()I" since="5"/> + <method name="getRssi()I"/> + <method name="setCid(I)V" deprecated="16"/> + <method name="setRssi(I)V" deprecated="16"/> + <field name="CREATOR"/> + <field name="UNKNOWN_CID"/> + <field name="UNKNOWN_RSSI"/> </class> <class name="android/telephony/NetworkScan" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(II)V" since="29"/> <method name="stopScan()V"/> <field name="ERROR_INTERRUPTED"/> <field name="ERROR_INVALID_SCAN"/> @@ -44449,10 +43007,10 @@ <method name="getStrippedReversed(Ljava/lang/String;)Ljava/lang/String;"/> <method name="is12Key(C)Z"/> <method name="isDialable(C)Z"/> - <method name="isEmergencyNumber(Ljava/lang/String;)Z" deprecated="29"/> + <method name="isEmergencyNumber(Ljava/lang/String;)Z"/> <method name="isGlobalPhoneNumber(Ljava/lang/String;)Z"/> <method name="isISODigit(C)Z"/> - <method name="isLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z" since="21" deprecated="29"/> + <method name="isLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z" since="21"/> <method name="isNonSeparator(C)Z"/> <method name="isReallyDialable(C)Z"/> <method name="isStartsPostDial(C)Z"/> @@ -44482,8 +43040,6 @@ <class name="android/telephony/PhoneStateListener" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="<init>(Ljava/util/concurrent/Executor;)V" since="29"/> - <method name="onActiveDataSubscriptionIdChanged(I)V" since="29"/> <method name="onCallForwardingIndicatorChanged(Z)V"/> <method name="onCallStateChanged(ILjava/lang/String;)V"/> <method name="onCellInfoChanged(Ljava/util/List;)V" since="17"/> @@ -44493,21 +43049,19 @@ <method name="onDataConnectionStateChanged(II)V" since="7"/> <method name="onMessageWaitingIndicatorChanged(Z)V"/> <method name="onServiceStateChanged(Landroid/telephony/ServiceState;)V"/> - <method name="onSignalStrengthChanged(I)V" deprecated="15"/> + <method name="onSignalStrengthChanged(I)V" deprecated="16"/> <method name="onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V" since="7"/> <method name="onUserMobileDataStateChanged(Z)V" since="28"/> - <field name="LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE" since="29"/> <field name="LISTEN_CALL_FORWARDING_INDICATOR"/> <field name="LISTEN_CALL_STATE"/> <field name="LISTEN_CELL_INFO" since="17"/> <field name="LISTEN_CELL_LOCATION"/> <field name="LISTEN_DATA_ACTIVITY"/> <field name="LISTEN_DATA_CONNECTION_STATE"/> - <field name="LISTEN_EMERGENCY_NUMBER_LIST" since="29"/> <field name="LISTEN_MESSAGE_WAITING_INDICATOR"/> <field name="LISTEN_NONE"/> <field name="LISTEN_SERVICE_STATE"/> - <field name="LISTEN_SIGNAL_STRENGTH" deprecated="15"/> + <field name="LISTEN_SIGNAL_STRENGTH" deprecated="16"/> <field name="LISTEN_SIGNAL_STRENGTHS" since="7"/> <field name="LISTEN_USER_MOBILE_DATA_STATE" since="28"/> </class> @@ -44524,7 +43078,7 @@ <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> <method name="<init>()V"/> - <method name="<init>(Landroid/os/Parcel;)V" deprecated="29"/> + <method name="<init>(Landroid/os/Parcel;)V"/> <method name="<init>(Landroid/telephony/ServiceState;)V"/> <method name="copyFrom(Landroid/telephony/ServiceState;)V"/> <method name="getCdmaNetworkId()I" since="28"/> @@ -44557,30 +43111,28 @@ <class name="android/telephony/SignalStrength" since="7"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="getCdmaDbm()I" deprecated="29"/> - <method name="getCdmaEcio()I" deprecated="29"/> - <method name="getCellSignalStrengths()Ljava/util/List;" since="29"/> - <method name="getCellSignalStrengths(Ljava/lang/Class;)Ljava/util/List;" since="29"/> - <method name="getEvdoDbm()I" deprecated="29"/> - <method name="getEvdoEcio()I" deprecated="29"/> - <method name="getEvdoSnr()I" deprecated="29"/> - <method name="getGsmBitErrorRate()I" deprecated="29"/> - <method name="getGsmSignalStrength()I" deprecated="29"/> + <method name="<init>()V"/> + <method name="getCdmaDbm()I"/> + <method name="getCdmaEcio()I"/> + <method name="getEvdoDbm()I"/> + <method name="getEvdoEcio()I"/> + <method name="getEvdoSnr()I"/> + <method name="getGsmBitErrorRate()I"/> + <method name="getGsmSignalStrength()I"/> <method name="getLevel()I" since="23"/> - <method name="isGsm()Z" deprecated="29"/> - <field name="INVALID" since="29"/> + <method name="isGsm()Z"/> </class> <class name="android/telephony/SmsManager" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="createAppSpecificSmsToken(Landroid/app/PendingIntent;)Ljava/lang/String;" since="26"/> - <method name="createAppSpecificSmsTokenWithPackageInfo(Ljava/lang/String;Landroid/app/PendingIntent;)Ljava/lang/String;" since="29"/> <method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;"/> <method name="downloadMultimediaMessage(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V" since="21"/> <method name="getCarrierConfigValues()Landroid/os/Bundle;" since="21"/> <method name="getDefault()Landroid/telephony/SmsManager;"/> <method name="getDefaultSmsSubscriptionId()I" since="22"/> <method name="getSmsManagerForSubscriptionId(I)Landroid/telephony/SmsManager;" since="22"/> - <method name="getSmsMessagesForFinancialApp(Landroid/os/Bundle;Ljava/util/concurrent/Executor;Landroid/telephony/SmsManager$FinancialSmsCallback;)V" since="29"/> <method name="getSubscriptionId()I" since="22"/> <method name="injectSmsPdu([BLjava/lang/String;Landroid/app/PendingIntent;)V" since="22"/> <method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V"/> @@ -44642,13 +43194,9 @@ <field name="STATUS_ON_ICC_UNREAD"/> <field name="STATUS_ON_ICC_UNSENT"/> </class> - <class name="android/telephony/SmsManager$FinancialSmsCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onFinancialSmsMessages(Landroid/database/CursorWindow;)V"/> - </class> <class name="android/telephony/SmsMessage" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="calculateLength(Ljava/lang/CharSequence;Z)[I"/> <method name="calculateLength(Ljava/lang/String;Z)[I"/> <method name="createFromPdu([B)Landroid/telephony/SmsMessage;" deprecated="23"/> @@ -44658,7 +43206,7 @@ <method name="getEmailBody()Ljava/lang/String;"/> <method name="getEmailFrom()Ljava/lang/String;"/> <method name="getIndexOnIcc()I"/> - <method name="getIndexOnSim()I" deprecated="15"/> + <method name="getIndexOnSim()I" deprecated="16"/> <method name="getMessageBody()Ljava/lang/String;"/> <method name="getMessageClass()Landroid/telephony/SmsMessage$MessageClass;"/> <method name="getOriginatingAddress()Ljava/lang/String;"/> @@ -44668,7 +43216,7 @@ <method name="getServiceCenterAddress()Ljava/lang/String;"/> <method name="getStatus()I"/> <method name="getStatusOnIcc()I"/> - <method name="getStatusOnSim()I" deprecated="15"/> + <method name="getStatusOnSim()I" deprecated="16"/> <method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/SmsMessage$SubmitPdu;"/> <method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/SmsMessage$SubmitPdu;"/> <method name="getTPLayerLengthForPDU(Ljava/lang/String;)I"/> @@ -44705,20 +43253,19 @@ </class> <class name="android/telephony/SmsMessage$SubmitPdu" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="encodedMessage"/> <field name="encodedScAddress"/> </class> <class name="android/telephony/SubscriptionInfo" since="22"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="createIconBitmap(Landroid/content/Context;)Landroid/graphics/Bitmap;"/> - <method name="getCardId()I" since="29"/> - <method name="getCarrierId()I" since="29"/> <method name="getCarrierName()Ljava/lang/CharSequence;"/> <method name="getCountryIso()Ljava/lang/String;"/> <method name="getDataRoaming()I"/> <method name="getDisplayName()Ljava/lang/CharSequence;"/> - <method name="getGroupUuid()Landroid/os/ParcelUuid;" since="29"/> <method name="getIccId()Ljava/lang/String;"/> <method name="getIconTint()I"/> <method name="getMcc()I" deprecated="29"/> @@ -44726,20 +43273,19 @@ <method name="getMnc()I" deprecated="29"/> <method name="getMncString()Ljava/lang/String;" since="29"/> <method name="getNumber()Ljava/lang/String;"/> + <method name="getParentSubId()I" since="29"/> <method name="getSimSlotIndex()I"/> <method name="getSubscriptionId()I"/> - <method name="getSubscriptionType()I" since="29"/> <method name="isEmbedded()Z" since="28"/> <method name="isOpportunistic()Z" since="29"/> <field name="CREATOR"/> </class> <class name="android/telephony/SubscriptionManager" since="22"> <extends name="java/lang/Object"/> - <method name="addOnOpportunisticSubscriptionsChangedListener(Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener;)V" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V"/> - <method name="addSubscriptionsIntoGroup(Ljava/util/List;Landroid/os/ParcelUuid;)V" since="29"/> <method name="canManageSubscription(Landroid/telephony/SubscriptionInfo;)Z" since="28"/> - <method name="createSubscriptionGroup(Ljava/util/List;)Landroid/os/ParcelUuid;" since="29"/> <method name="from(Landroid/content/Context;)Landroid/telephony/SubscriptionManager;" deprecated="28"/> <method name="getAccessibleSubscriptionInfoList()Ljava/util/List;" since="28"/> <method name="getActiveSubscriptionInfo(I)Landroid/telephony/SubscriptionInfo;"/> @@ -44751,19 +43297,9 @@ <method name="getDefaultSmsSubscriptionId()I" since="24"/> <method name="getDefaultSubscriptionId()I" since="24"/> <method name="getDefaultVoiceSubscriptionId()I" since="24"/> - <method name="getOpportunisticSubscriptions()Ljava/util/List;" since="29"/> - <method name="getSlotIndex(I)I" since="29"/> - <method name="getSubscriptionIds(I)[I" since="29"/> <method name="getSubscriptionPlans(I)Ljava/util/List;" since="28"/> - <method name="getSubscriptionsInGroup(Landroid/os/ParcelUuid;)Ljava/util/List;" since="29"/> - <method name="isActiveSubscriptionId(I)Z" since="29"/> <method name="isNetworkRoaming(I)Z"/> - <method name="isUsableSubscriptionId(I)Z" since="29"/> - <method name="isValidSubscriptionId(I)Z" since="29"/> - <method name="removeOnOpportunisticSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener;)V" since="29"/> <method name="removeOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V"/> - <method name="removeSubscriptionsFromGroup(Ljava/util/List;Landroid/os/ParcelUuid;)V" since="29"/> - <method name="setOpportunistic(ZI)Z" since="29"/> <method name="setSubscriptionOverrideCongested(IZJ)V" since="28"/> <method name="setSubscriptionOverrideUnmetered(IZJ)V" since="28"/> <method name="setSubscriptionPlans(ILjava/util/List;)V" since="28"/> @@ -44774,17 +43310,8 @@ <field name="ACTION_REFRESH_SUBSCRIPTION_PLANS" since="28"/> <field name="DATA_ROAMING_DISABLE"/> <field name="DATA_ROAMING_ENABLE"/> - <field name="DEFAULT_SUBSCRIPTION_ID" since="29"/> <field name="EXTRA_SUBSCRIPTION_INDEX" since="26"/> - <field name="INVALID_SIM_SLOT_INDEX" since="29"/> <field name="INVALID_SUBSCRIPTION_ID" since="24"/> - <field name="SUBSCRIPTION_TYPE_LOCAL_SIM" since="29"/> - <field name="SUBSCRIPTION_TYPE_REMOTE_SIM" since="29"/> - </class> - <class name="android/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onOpportunisticSubscriptionsChanged()V"/> </class> <class name="android/telephony/SubscriptionManager$OnSubscriptionsChangedListener" since="22"> <extends name="java/lang/Object"/> @@ -44794,6 +43321,8 @@ <class name="android/telephony/SubscriptionPlan" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="cycleIterator()Ljava/util/Iterator;"/> <method name="getDataLimitBehavior()I"/> <method name="getDataLimitBytes()J"/> @@ -44812,6 +43341,8 @@ </class> <class name="android/telephony/SubscriptionPlan$Builder" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;Ljava/time/Period;)V" since="29"/> <method name="build()Landroid/telephony/SubscriptionPlan;"/> <method name="createNonrecurring(Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;)Landroid/telephony/SubscriptionPlan$Builder;"/> <method name="createRecurring(Ljava/time/ZonedDateTime;Ljava/time/Period;)Landroid/telephony/SubscriptionPlan$Builder;"/> @@ -44822,15 +43353,13 @@ </class> <class name="android/telephony/TelephonyManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="canChangeDtmfToneLength()Z" since="23"/> <method name="createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager;" since="26"/> <method name="createForSubscriptionId(I)Landroid/telephony/TelephonyManager;" since="24"/> - <method name="doesSwitchMultiSimConfigTriggerReboot()Z" since="29"/> <method name="getAllCellInfo()Ljava/util/List;" since="17"/> <method name="getCallState()I"/> - <method name="getCardIdForDefaultEuicc()I" since="29"/> <method name="getCarrierConfig()Landroid/os/PersistableBundle;" since="26"/> - <method name="getCarrierIdFromSimMccMnc()I" since="29"/> <method name="getCellLocation()Landroid/telephony/CellLocation;" deprecated="26"/> <method name="getDataActivity()I"/> <method name="getDataNetworkType()I" since="24"/> @@ -44838,8 +43367,6 @@ <method name="getDeviceId()Ljava/lang/String;" deprecated="26"/> <method name="getDeviceId(I)Ljava/lang/String;" since="23" deprecated="26"/> <method name="getDeviceSoftwareVersion()Ljava/lang/String;"/> - <method name="getEmergencyNumberList()Ljava/util/Map;" since="29"/> - <method name="getEmergencyNumberList(I)Ljava/util/Map;" since="29"/> <method name="getForbiddenPlmns()[Ljava/lang/String;" since="26"/> <method name="getGroupIdLevel1()Ljava/lang/String;" since="18"/> <method name="getIccAuthentication(IILjava/lang/String;)Ljava/lang/String;" since="24"/> @@ -44853,15 +43380,14 @@ <method name="getMmsUAProfUrl()Ljava/lang/String;" since="19"/> <method name="getMmsUserAgent()Ljava/lang/String;" since="19"/> <method name="getNai()Ljava/lang/String;" since="28"/> - <method name="getNeighboringCellInfo()Ljava/util/List;" since="3" deprecated="23" removed="29"/> + <method name="getNeighboringCellInfo()Ljava/util/List;" since="3" deprecated="23"/> <method name="getNetworkCountryIso()Ljava/lang/String;"/> <method name="getNetworkOperator()Ljava/lang/String;"/> <method name="getNetworkOperatorName()Ljava/lang/String;"/> <method name="getNetworkSpecifier()Ljava/lang/String;" since="26"/> - <method name="getNetworkType()I" deprecated="30"/> + <method name="getNetworkType()I"/> <method name="getPhoneCount()I" since="23"/> <method name="getPhoneType()I"/> - <method name="getPreferredOpportunisticDataSubscription()I" since="29"/> <method name="getServiceState()Landroid/telephony/ServiceState;" since="26"/> <method name="getSignalStrength()Landroid/telephony/SignalStrength;" since="28"/> <method name="getSimCarrierId()I" since="28"/> @@ -44870,14 +43396,11 @@ <method name="getSimOperator()Ljava/lang/String;"/> <method name="getSimOperatorName()Ljava/lang/String;"/> <method name="getSimSerialNumber()Ljava/lang/String;"/> - <method name="getSimSpecificCarrierId()I" since="29"/> - <method name="getSimSpecificCarrierIdName()Ljava/lang/CharSequence;" since="29"/> <method name="getSimState()I"/> <method name="getSimState(I)I" since="26"/> <method name="getSubscriberId()Ljava/lang/String;"/> <method name="getTypeAllocationCode()Ljava/lang/String;" since="29"/> <method name="getTypeAllocationCode(I)Ljava/lang/String;" since="29"/> - <method name="getUiccCardsInfo()Ljava/util/List;" since="29"/> <method name="getVisualVoicemailPackageName()Ljava/lang/String;" since="26"/> <method name="getVoiceMailAlphaTag()Ljava/lang/String;"/> <method name="getVoiceMailNumber()Ljava/lang/String;"/> @@ -44893,19 +43416,14 @@ <method name="iccTransmitApduLogicalChannel(IIIIIILjava/lang/String;)Ljava/lang/String;" since="21"/> <method name="isConcurrentVoiceAndDataSupported()Z" since="26"/> <method name="isDataEnabled()Z" since="26"/> - <method name="isDataRoamingEnabled()Z" since="29"/> - <method name="isEmergencyNumber(Ljava/lang/String;)Z" since="29"/> <method name="isHearingAidCompatibilitySupported()Z" since="23"/> - <method name="isMultiSimSupported()I" since="29"/> <method name="isNetworkRoaming()Z"/> - <method name="isRttSupported()Z" since="29"/> <method name="isSmsCapable()Z" since="21"/> <method name="isTtyModeSupported()Z" since="23" deprecated="28"/> <method name="isVoiceCapable()Z" since="22"/> <method name="isVoicemailVibrationEnabled(Landroid/telecom/PhoneAccountHandle;)Z" since="24"/> <method name="isWorldPhone()Z" since="23"/> <method name="listen(Landroid/telephony/PhoneStateListener;I)V"/> - <method name="requestCellInfoUpdate(Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V" since="29"/> <method name="requestNetworkScan(Landroid/telephony/NetworkScanRequest;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyScanManager$NetworkScanCallback;)Landroid/telephony/NetworkScan;" since="28"/> <method name="sendDialerSpecialCode(Ljava/lang/String;)V" since="26"/> <method name="sendEnvelopeWithStatus(Ljava/lang/String;)Ljava/lang/String;" since="21"/> @@ -44917,22 +43435,15 @@ <method name="setNetworkSelectionModeManual(Ljava/lang/String;Z)Z" since="28"/> <method name="setOperatorBrandOverride(Ljava/lang/String;)Z" since="22"/> <method name="setPreferredNetworkTypeToGlobal()Z" since="22"/> - <method name="setPreferredOpportunisticDataSubscription(IZLjava/util/concurrent/Executor;Ljava/util/function/Consumer;)V" since="29"/> <method name="setVisualVoicemailSmsFilterSettings(Landroid/telephony/VisualVoicemailSmsFilterSettings;)V" since="26"/> <method name="setVoiceMailNumber(Ljava/lang/String;Ljava/lang/String;)Z" since="22"/> <method name="setVoicemailRingtoneUri(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;)V" since="26" deprecated="28"/> <method name="setVoicemailVibrationEnabled(Landroid/telecom/PhoneAccountHandle;Z)V" since="26" deprecated="28"/> - <method name="switchMultiSimConfig(I)V" since="29"/> - <method name="updateAvailableNetworks(Ljava/util/List;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V" since="29"/> - <field name="ACTION_CARRIER_MESSAGING_CLIENT_SERVICE" since="29"/> <field name="ACTION_CONFIGURE_VOICEMAIL" since="23"/> - <field name="ACTION_NETWORK_COUNTRY_CHANGED" since="29"/> <field name="ACTION_PHONE_STATE_CHANGED" since="3"/> <field name="ACTION_RESPOND_VIA_MESSAGE" since="18"/> - <field name="ACTION_SECRET_CODE" since="29"/> <field name="ACTION_SHOW_VOICEMAIL_NOTIFICATION" since="26"/> <field name="ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED" since="28"/> - <field name="ACTION_SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED" since="29"/> <field name="APPTYPE_CSIM" since="24"/> <field name="APPTYPE_ISIM" since="24"/> <field name="APPTYPE_RUIM" since="24"/> @@ -44956,19 +43467,15 @@ <field name="DATA_CONNECTING"/> <field name="DATA_DISCONNECTED"/> <field name="DATA_SUSPENDED"/> - <field name="DATA_UNKNOWN" since="29"/> <field name="EXTRA_CALL_VOICEMAIL_INTENT" since="26"/> <field name="EXTRA_CARRIER_ID" since="28"/> <field name="EXTRA_CARRIER_NAME" since="28"/> <field name="EXTRA_HIDE_PUBLIC_SETTINGS" since="26"/> - <field name="EXTRA_INCOMING_NUMBER" since="3" deprecated="29"/> + <field name="EXTRA_INCOMING_NUMBER" since="3"/> <field name="EXTRA_IS_REFRESH" since="27"/> <field name="EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT" since="26"/> - <field name="EXTRA_NETWORK_COUNTRY" since="29"/> <field name="EXTRA_NOTIFICATION_COUNT" since="26"/> <field name="EXTRA_PHONE_ACCOUNT_HANDLE" since="26"/> - <field name="EXTRA_SPECIFIC_CARRIER_ID" since="29"/> - <field name="EXTRA_SPECIFIC_CARRIER_NAME" since="29"/> <field name="EXTRA_STATE" since="3"/> <field name="EXTRA_STATE_IDLE" since="3"/> <field name="EXTRA_STATE_OFFHOOK" since="3"/> @@ -44976,9 +43483,6 @@ <field name="EXTRA_SUBSCRIPTION_ID" since="28"/> <field name="EXTRA_VOICEMAIL_NUMBER" since="26"/> <field name="METADATA_HIDE_VOICEMAIL_SETTINGS_MENU" since="26"/> - <field name="MULTISIM_ALLOWED" since="29"/> - <field name="MULTISIM_NOT_SUPPORTED_BY_CARRIER" since="29"/> - <field name="MULTISIM_NOT_SUPPORTED_BY_HARDWARE" since="29"/> <field name="NETWORK_TYPE_1xRTT" since="4"/> <field name="NETWORK_TYPE_CDMA" since="4"/> <field name="NETWORK_TYPE_EDGE"/> @@ -44995,7 +43499,6 @@ <field name="NETWORK_TYPE_IDEN" since="8"/> <field name="NETWORK_TYPE_IWLAN" since="25"/> <field name="NETWORK_TYPE_LTE" since="11"/> - <field name="NETWORK_TYPE_NR" since="29"/> <field name="NETWORK_TYPE_TD_SCDMA" since="25"/> <field name="NETWORK_TYPE_UMTS"/> <field name="NETWORK_TYPE_UNKNOWN"/> @@ -45003,9 +43506,6 @@ <field name="PHONE_TYPE_GSM"/> <field name="PHONE_TYPE_NONE"/> <field name="PHONE_TYPE_SIP" since="11"/> - <field name="SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION" since="29"/> - <field name="SET_OPPORTUNISTIC_SUB_SUCCESS" since="29"/> - <field name="SET_OPPORTUNISTIC_SUB_VALIDATION_FAILED" since="29"/> <field name="SIM_STATE_ABSENT"/> <field name="SIM_STATE_CARD_IO_ERROR" since="26"/> <field name="SIM_STATE_CARD_RESTRICTED" since="26"/> @@ -45016,27 +43516,12 @@ <field name="SIM_STATE_PUK_REQUIRED"/> <field name="SIM_STATE_READY"/> <field name="SIM_STATE_UNKNOWN"/> - <field name="UNINITIALIZED_CARD_ID" since="29"/> <field name="UNKNOWN_CARRIER_ID" since="28"/> - <field name="UNSUPPORTED_CARD_ID" since="29"/> - <field name="UPDATE_AVAILABLE_NETWORKS_ABORTED" since="29"/> - <field name="UPDATE_AVAILABLE_NETWORKS_INVALID_ARGUMENTS" since="29"/> - <field name="UPDATE_AVAILABLE_NETWORKS_NO_CARRIER_PRIVILEGE" since="29"/> - <field name="UPDATE_AVAILABLE_NETWORKS_SUCCESS" since="29"/> - <field name="UPDATE_AVAILABLE_NETWORKS_UNKNOWN_FAILURE" since="29"/> <field name="USSD_ERROR_SERVICE_UNAVAIL" since="26"/> <field name="USSD_RETURN_FAILURE" since="26"/> <field name="VVM_TYPE_CVVM" since="23"/> <field name="VVM_TYPE_OMTP" since="23"/> </class> - <class name="android/telephony/TelephonyManager$CellInfoCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onCellInfo(Ljava/util/List;)V"/> - <method name="onError(ILjava/lang/Throwable;)V"/> - <field name="ERROR_MODEM_ERROR"/> - <field name="ERROR_TIMEOUT"/> - </class> <class name="android/telephony/TelephonyManager$UssdResponseCallback" since="26"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -45054,17 +43539,6 @@ <method name="onError(I)V"/> <method name="onResults(Ljava/util/List;)V"/> </class> - <class name="android/telephony/UiccCardInfo" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getCardId()I"/> - <method name="getEid()Ljava/lang/String;"/> - <method name="getIccId()Ljava/lang/String;"/> - <method name="getSlotIndex()I"/> - <method name="isEuicc()Z"/> - <method name="isRemovable()Z"/> - <field name="CREATOR"/> - </class> <class name="android/telephony/VisualVoicemailService" since="26"> <extends name="android/app/Service"/> <method name="<init>()V"/> @@ -45076,11 +43550,14 @@ </class> <class name="android/telephony/VisualVoicemailService$VisualVoicemailTask" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Messenger;I)V" since="29"/> <method name="finish()V"/> </class> <class name="android/telephony/VisualVoicemailSms" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getFields()Landroid/os/Bundle;"/> <method name="getMessageBody()Ljava/lang/String;"/> <method name="getPhoneAccountHandle()Landroid/telecom/PhoneAccountHandle;"/> @@ -45090,6 +43567,8 @@ <class name="android/telephony/VisualVoicemailSmsFilterSettings" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;)V" since="29"/> <field name="CREATOR"/> <field name="DESTINATION_PORT_ANY"/> <field name="DESTINATION_PORT_DATA_SMS"/> @@ -45123,10 +43602,11 @@ <class name="android/telephony/data/ApnSetting" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/telephony/data/ApnSetting$Builder;)V" since="29"/> <method name="getApnName()Ljava/lang/String;"/> <method name="getApnTypeBitmask()I"/> <method name="getAuthType()I"/> - <method name="getCarrierId()I" since="29"/> <method name="getEntryName()Ljava/lang/String;"/> <method name="getId()I"/> <method name="getMmsProxyAddress()Ljava/net/InetAddress;" deprecated="29"/> @@ -45156,9 +43636,7 @@ <field name="PROTOCOL_IP"/> <field name="PROTOCOL_IPV4V6"/> <field name="PROTOCOL_IPV6"/> - <field name="PROTOCOL_NON_IP" since="29"/> <field name="PROTOCOL_PPP"/> - <field name="PROTOCOL_UNSTRUCTURED" since="29"/> <field name="TYPE_CBS"/> <field name="TYPE_DEFAULT"/> <field name="TYPE_DUN"/> @@ -45167,7 +43645,6 @@ <field name="TYPE_HIPRI"/> <field name="TYPE_IA"/> <field name="TYPE_IMS"/> - <field name="TYPE_MCX" since="29"/> <field name="TYPE_MMS"/> <field name="TYPE_SUPL"/> </class> @@ -45179,7 +43656,6 @@ <method name="setApnTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;"/> <method name="setAuthType(I)Landroid/telephony/data/ApnSetting$Builder;"/> <method name="setCarrierEnabled(Z)Landroid/telephony/data/ApnSetting$Builder;"/> - <method name="setCarrierId(I)Landroid/telephony/data/ApnSetting$Builder;" since="29"/> <method name="setEntryName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;"/> <method name="setMmsProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;" since="29"/> <method name="setMmsProxyAddress(Ljava/net/InetAddress;)Landroid/telephony/data/ApnSetting$Builder;" deprecated="29"/> @@ -45196,41 +43672,11 @@ <method name="setRoamingProtocol(I)Landroid/telephony/data/ApnSetting$Builder;"/> <method name="setUser(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;"/> </class> - <class name="android/telephony/emergency/EmergencyNumber" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <implements name="java/lang/Comparable"/> - <method name="compareTo(Landroid/telephony/emergency/EmergencyNumber;)I"/> - <method name="getCountryIso()Ljava/lang/String;"/> - <method name="getEmergencyCallRouting()I"/> - <method name="getEmergencyNumberSources()Ljava/util/List;"/> - <method name="getEmergencyServiceCategories()Ljava/util/List;"/> - <method name="getEmergencyUrns()Ljava/util/List;"/> - <method name="getMnc()Ljava/lang/String;"/> - <method name="getNumber()Ljava/lang/String;"/> - <method name="isFromSources(I)Z"/> - <method name="isInEmergencyServiceCategories(I)Z"/> - <field name="CREATOR"/> - <field name="EMERGENCY_CALL_ROUTING_EMERGENCY"/> - <field name="EMERGENCY_CALL_ROUTING_NORMAL"/> - <field name="EMERGENCY_CALL_ROUTING_UNKNOWN"/> - <field name="EMERGENCY_NUMBER_SOURCE_DATABASE"/> - <field name="EMERGENCY_NUMBER_SOURCE_DEFAULT"/> - <field name="EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG"/> - <field name="EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING"/> - <field name="EMERGENCY_NUMBER_SOURCE_SIM"/> - <field name="EMERGENCY_SERVICE_CATEGORY_AIEC"/> - <field name="EMERGENCY_SERVICE_CATEGORY_AMBULANCE"/> - <field name="EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE"/> - <field name="EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD"/> - <field name="EMERGENCY_SERVICE_CATEGORY_MIEC"/> - <field name="EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE"/> - <field name="EMERGENCY_SERVICE_CATEGORY_POLICE"/> - <field name="EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED"/> - </class> <class name="android/telephony/euicc/DownloadableSubscription" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="forActivationCode(Ljava/lang/String;)Landroid/telephony/euicc/DownloadableSubscription;"/> <method name="getConfirmationCode()Ljava/lang/String;"/> <method name="getEncodedActivationCode()Ljava/lang/String;"/> @@ -45245,7 +43691,8 @@ </class> <class name="android/telephony/euicc/EuiccManager" since="28"> <extends name="java/lang/Object"/> - <method name="createForCardId(I)Landroid/telephony/euicc/EuiccManager;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="deleteSubscription(ILandroid/app/PendingIntent;)V"/> <method name="downloadSubscription(Landroid/telephony/euicc/DownloadableSubscription;ZLandroid/app/PendingIntent;)V"/> <method name="getEid()Ljava/lang/String;"/> @@ -45253,7 +43700,6 @@ <method name="isEnabled()Z"/> <method name="startResolutionActivity(Landroid/app/Activity;ILandroid/content/Intent;Landroid/app/PendingIntent;)V"/> <method name="switchToSubscription(ILandroid/app/PendingIntent;)V"/> - <method name="updateSubscriptionNickname(ILjava/lang/String;Landroid/app/PendingIntent;)V" since="29"/> <field name="ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS"/> <field name="ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE"/> <field name="EMBEDDED_SUBSCRIPTION_RESULT_ERROR"/> @@ -45276,77 +43722,78 @@ </class> <class name="android/telephony/gsm/SmsManager" since="1" deprecated="4"> <extends name="java/lang/Object"/> - <method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;" deprecated="15"/> - <method name="getDefault()Landroid/telephony/gsm/SmsManager;" deprecated="15"/> - <method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V" deprecated="15"/> - <method name="sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V" deprecated="15"/> - <method name="sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V" deprecated="15"/> - <field name="RESULT_ERROR_GENERIC_FAILURE" deprecated="15"/> - <field name="RESULT_ERROR_NO_SERVICE" deprecated="15"/> - <field name="RESULT_ERROR_NULL_PDU" deprecated="15"/> - <field name="RESULT_ERROR_RADIO_OFF" deprecated="15"/> - <field name="STATUS_ON_SIM_FREE" deprecated="15"/> - <field name="STATUS_ON_SIM_READ" deprecated="15"/> - <field name="STATUS_ON_SIM_SENT" deprecated="15"/> - <field name="STATUS_ON_SIM_UNREAD" deprecated="15"/> - <field name="STATUS_ON_SIM_UNSENT" deprecated="15"/> + <method name="<init>()V" deprecated="29"/> + <method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;" deprecated="16"/> + <method name="getDefault()Landroid/telephony/gsm/SmsManager;" deprecated="16"/> + <method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V" deprecated="16"/> + <method name="sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V" deprecated="16"/> + <method name="sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V" deprecated="16"/> + <field name="RESULT_ERROR_GENERIC_FAILURE" deprecated="16"/> + <field name="RESULT_ERROR_NO_SERVICE" deprecated="16"/> + <field name="RESULT_ERROR_NULL_PDU" deprecated="16"/> + <field name="RESULT_ERROR_RADIO_OFF" deprecated="16"/> + <field name="STATUS_ON_SIM_FREE" deprecated="16"/> + <field name="STATUS_ON_SIM_READ" deprecated="16"/> + <field name="STATUS_ON_SIM_SENT" deprecated="16"/> + <field name="STATUS_ON_SIM_UNREAD" deprecated="16"/> + <field name="STATUS_ON_SIM_UNSENT" deprecated="16"/> </class> <class name="android/telephony/gsm/SmsMessage" since="1" deprecated="4"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="15"/> - <method name="calculateLength(Ljava/lang/CharSequence;Z)[I" since="3" deprecated="15"/> - <method name="calculateLength(Ljava/lang/String;Z)[I" deprecated="15"/> - <method name="createFromPdu([B)Landroid/telephony/gsm/SmsMessage;" deprecated="15"/> - <method name="getDisplayMessageBody()Ljava/lang/String;" deprecated="15"/> - <method name="getDisplayOriginatingAddress()Ljava/lang/String;" deprecated="15"/> - <method name="getEmailBody()Ljava/lang/String;" deprecated="15"/> - <method name="getEmailFrom()Ljava/lang/String;" deprecated="15"/> - <method name="getIndexOnSim()I" deprecated="15"/> - <method name="getMessageBody()Ljava/lang/String;" deprecated="15"/> - <method name="getMessageClass()Landroid/telephony/gsm/SmsMessage$MessageClass;" deprecated="15"/> - <method name="getOriginatingAddress()Ljava/lang/String;" deprecated="15"/> - <method name="getPdu()[B" deprecated="15"/> - <method name="getProtocolIdentifier()I" deprecated="15"/> - <method name="getPseudoSubject()Ljava/lang/String;" deprecated="15"/> - <method name="getServiceCenterAddress()Ljava/lang/String;" deprecated="15"/> - <method name="getStatus()I" deprecated="15"/> - <method name="getStatusOnSim()I" deprecated="15"/> - <method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" deprecated="15"/> - <method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" deprecated="15"/> - <method name="getTPLayerLengthForPDU(Ljava/lang/String;)I" deprecated="15"/> - <method name="getTimestampMillis()J" deprecated="15"/> - <method name="getUserData()[B" deprecated="15"/> - <method name="isCphsMwiMessage()Z" deprecated="15"/> - <method name="isEmail()Z" deprecated="15"/> - <method name="isMWIClearMessage()Z" deprecated="15"/> - <method name="isMWISetMessage()Z" deprecated="15"/> - <method name="isMwiDontStore()Z" deprecated="15"/> - <method name="isReplace()Z" deprecated="15"/> - <method name="isReplyPathPresent()Z" deprecated="15"/> - <method name="isStatusReportMessage()Z" deprecated="15"/> - <field name="ENCODING_16BIT" deprecated="15"/> - <field name="ENCODING_7BIT" deprecated="15"/> - <field name="ENCODING_8BIT" deprecated="15"/> - <field name="ENCODING_UNKNOWN" deprecated="15"/> - <field name="MAX_USER_DATA_BYTES" deprecated="15"/> - <field name="MAX_USER_DATA_SEPTETS" deprecated="15"/> - <field name="MAX_USER_DATA_SEPTETS_WITH_HEADER" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> + <method name="calculateLength(Ljava/lang/CharSequence;Z)[I" since="3" deprecated="16"/> + <method name="calculateLength(Ljava/lang/String;Z)[I" deprecated="16"/> + <method name="createFromPdu([B)Landroid/telephony/gsm/SmsMessage;" deprecated="16"/> + <method name="getDisplayMessageBody()Ljava/lang/String;" deprecated="16"/> + <method name="getDisplayOriginatingAddress()Ljava/lang/String;" deprecated="16"/> + <method name="getEmailBody()Ljava/lang/String;" deprecated="16"/> + <method name="getEmailFrom()Ljava/lang/String;" deprecated="16"/> + <method name="getIndexOnSim()I" deprecated="16"/> + <method name="getMessageBody()Ljava/lang/String;" deprecated="16"/> + <method name="getMessageClass()Landroid/telephony/gsm/SmsMessage$MessageClass;" deprecated="16"/> + <method name="getOriginatingAddress()Ljava/lang/String;" deprecated="16"/> + <method name="getPdu()[B" deprecated="16"/> + <method name="getProtocolIdentifier()I" deprecated="16"/> + <method name="getPseudoSubject()Ljava/lang/String;" deprecated="16"/> + <method name="getServiceCenterAddress()Ljava/lang/String;" deprecated="16"/> + <method name="getStatus()I" deprecated="16"/> + <method name="getStatusOnSim()I" deprecated="16"/> + <method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" deprecated="16"/> + <method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" deprecated="16"/> + <method name="getTPLayerLengthForPDU(Ljava/lang/String;)I" deprecated="16"/> + <method name="getTimestampMillis()J" deprecated="16"/> + <method name="getUserData()[B" deprecated="16"/> + <method name="isCphsMwiMessage()Z" deprecated="16"/> + <method name="isEmail()Z" deprecated="16"/> + <method name="isMWIClearMessage()Z" deprecated="16"/> + <method name="isMWISetMessage()Z" deprecated="16"/> + <method name="isMwiDontStore()Z" deprecated="16"/> + <method name="isReplace()Z" deprecated="16"/> + <method name="isReplyPathPresent()Z" deprecated="16"/> + <method name="isStatusReportMessage()Z" deprecated="16"/> + <field name="ENCODING_16BIT" deprecated="16"/> + <field name="ENCODING_7BIT" deprecated="16"/> + <field name="ENCODING_8BIT" deprecated="16"/> + <field name="ENCODING_UNKNOWN" deprecated="16"/> + <field name="MAX_USER_DATA_BYTES" deprecated="16"/> + <field name="MAX_USER_DATA_SEPTETS" deprecated="16"/> + <field name="MAX_USER_DATA_SEPTETS_WITH_HEADER" deprecated="16"/> </class> <class name="android/telephony/gsm/SmsMessage$MessageClass" since="1" deprecated="4"> <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/telephony/gsm/SmsMessage$MessageClass;"/> <method name="values()[Landroid/telephony/gsm/SmsMessage$MessageClass;"/> - <field name="CLASS_0" deprecated="29"/> - <field name="CLASS_1" deprecated="29"/> - <field name="CLASS_2" deprecated="29"/> - <field name="CLASS_3" deprecated="29"/> - <field name="UNKNOWN" deprecated="29"/> + <field name="CLASS_0"/> + <field name="CLASS_1"/> + <field name="CLASS_2"/> + <field name="CLASS_3"/> + <field name="UNKNOWN"/> </class> <class name="android/telephony/gsm/SmsMessage$SubmitPdu" since="1" deprecated="4"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="15"/> - <field name="encodedMessage" deprecated="15"/> - <field name="encodedScAddress" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> + <field name="encodedMessage" deprecated="16"/> + <field name="encodedScAddress" deprecated="16"/> </class> <class name="android/telephony/mbms/DownloadProgressListener" since="28"> <extends name="java/lang/Object"/> @@ -45356,6 +43803,8 @@ <class name="android/telephony/mbms/DownloadRequest" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getDestinationUri()Landroid/net/Uri;"/> <method name="getFileServiceId()Ljava/lang/String;"/> <method name="getMaxAppIntentSize()I"/> @@ -45383,6 +43832,8 @@ <class name="android/telephony/mbms/FileInfo" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getMimeType()Ljava/lang/String;"/> <method name="getUri()Landroid/net/Uri;"/> <field name="CREATOR"/> @@ -45390,31 +43841,11 @@ <class name="android/telephony/mbms/FileServiceInfo" since="28"> <extends name="android/telephony/mbms/ServiceInfo"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getFiles()Ljava/util/List;"/> <field name="CREATOR"/> </class> - <class name="android/telephony/mbms/GroupCall" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable"/> - <method name="getTmgi()J"/> - <method name="updateGroupCall(Ljava/util/List;Ljava/util/List;)V"/> - <field name="REASON_BY_USER_REQUEST"/> - <field name="REASON_FREQUENCY_CONFLICT"/> - <field name="REASON_LEFT_MBMS_BROADCAST_AREA"/> - <field name="REASON_NONE"/> - <field name="REASON_NOT_CONNECTED_TO_HOMECARRIER_LTE"/> - <field name="REASON_OUT_OF_MEMORY"/> - <field name="STATE_STALLED"/> - <field name="STATE_STARTED"/> - <field name="STATE_STOPPED"/> - </class> - <class name="android/telephony/mbms/GroupCallCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="onBroadcastSignalStrengthUpdated(I)V"/> - <method name="onError(ILjava/lang/String;)V"/> - <method name="onGroupCallStateChanged(II)V"/> - <field name="SIGNAL_STRENGTH_UNAVAILABLE"/> - </class> <class name="android/telephony/mbms/MbmsDownloadReceiver" since="28"> <extends name="android/content/BroadcastReceiver"/> <method name="<init>()V"/> @@ -45428,6 +43859,7 @@ </class> <class name="android/telephony/mbms/MbmsErrors" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ERROR_MIDDLEWARE_LOST"/> <field name="ERROR_MIDDLEWARE_NOT_BOUND"/> <field name="ERROR_NO_UNIQUE_MIDDLEWARE"/> @@ -45436,12 +43868,14 @@ </class> <class name="android/telephony/mbms/MbmsErrors$DownloadErrors" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ERROR_CANNOT_CHANGE_TEMP_FILE_ROOT"/> <field name="ERROR_UNKNOWN_DOWNLOAD_REQUEST"/> <field name="ERROR_UNKNOWN_FILE_INFO"/> </class> <class name="android/telephony/mbms/MbmsErrors$GeneralErrors" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ERROR_CARRIER_CHANGE_NOT_ALLOWED"/> <field name="ERROR_IN_E911"/> <field name="ERROR_MIDDLEWARE_NOT_YET_READY"/> @@ -45450,30 +43884,20 @@ <field name="ERROR_OUT_OF_MEMORY"/> <field name="ERROR_UNABLE_TO_READ_SIM"/> </class> - <class name="android/telephony/mbms/MbmsErrors$GroupCallErrors" since="29"> - <extends name="java/lang/Object"/> - <field name="ERROR_DUPLICATE_START_GROUP_CALL"/> - <field name="ERROR_UNABLE_TO_START_SERVICE"/> - </class> <class name="android/telephony/mbms/MbmsErrors$InitializationErrors" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ERROR_APP_PERMISSIONS_NOT_GRANTED"/> <field name="ERROR_DUPLICATE_INITIALIZE"/> <field name="ERROR_UNABLE_TO_INITIALIZE"/> </class> <class name="android/telephony/mbms/MbmsErrors$StreamingErrors" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ERROR_CONCURRENT_SERVICE_LIMIT_REACHED"/> <field name="ERROR_DUPLICATE_START_STREAM"/> <field name="ERROR_UNABLE_TO_START_SERVICE"/> </class> - <class name="android/telephony/mbms/MbmsGroupCallSessionCallback" since="29"> - <extends name="java/lang/Object"/> - <method name="onAvailableSaisUpdated(Ljava/util/List;Ljava/util/List;)V"/> - <method name="onError(ILjava/lang/String;)V"/> - <method name="onMiddlewareReady()V"/> - <method name="onServiceInterfaceAvailable(Ljava/lang/String;I)V"/> - </class> <class name="android/telephony/mbms/MbmsStreamingSessionCallback" since="28"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -45483,6 +43907,8 @@ </class> <class name="android/telephony/mbms/ServiceInfo" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getLocales()Ljava/util/List;"/> <method name="getNameForLocale(Ljava/util/Locale;)Ljava/lang/CharSequence;"/> <method name="getNamedContentLocales()Ljava/util/Set;"/> @@ -45494,6 +43920,7 @@ <class name="android/telephony/mbms/StreamingService" since="28"> <extends name="java/lang/Object"/> <implements name="java/lang/AutoCloseable"/> + <method name="<init>()V"/> <method name="getInfo()Landroid/telephony/mbms/StreamingServiceInfo;"/> <method name="getPlaybackUri()Landroid/net/Uri;"/> <field name="BROADCAST_METHOD"/> @@ -45522,6 +43949,8 @@ <class name="android/telephony/mbms/StreamingServiceInfo" since="28"> <extends name="android/telephony/mbms/ServiceInfo"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/test/ActivityInstrumentationTestCase" since="1" deprecated="3" removed="28"> @@ -45533,7 +43962,7 @@ <class name="android/test/ActivityInstrumentationTestCase2" since="3" deprecated="24" removed="28"> <extends name="android/test/ActivityTestCase"/> <method name="<init>(Ljava/lang/Class;)V" since="8"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/Class;)V" deprecated="15"/> + <method name="<init>(Ljava/lang/String;Ljava/lang/Class;)V" deprecated="16"/> <method name="setActivityInitialTouchMode(Z)V"/> <method name="setActivityIntent(Landroid/content/Intent;)V"/> </class> @@ -45580,7 +44009,7 @@ <method name="runTest()V"/> <method name="runTest(Ljunit/framework/TestResult;)V"/> <method name="setContext(Landroid/content/Context;)V"/> - <method name="setInstrumentaiton(Landroid/app/Instrumentation;)V" deprecated="15"/> + <method name="setInstrumentaiton(Landroid/app/Instrumentation;)V" deprecated="16"/> <method name="setInstrumentation(Landroid/app/Instrumentation;)V" since="5"/> <method name="setTest(Ljunit/framework/Test;)V"/> <method name="setTestClassName(Ljava/lang/String;Ljava/lang/String;)V"/> @@ -45612,7 +44041,7 @@ <extends name="junit/framework/TestCase"/> <method name="<init>()V"/> <method name="getInstrumentation()Landroid/app/Instrumentation;"/> - <method name="injectInsrumentation(Landroid/app/Instrumentation;)V" deprecated="15"/> + <method name="injectInsrumentation(Landroid/app/Instrumentation;)V" deprecated="16"/> <method name="injectInstrumentation(Landroid/app/Instrumentation;)V" since="5"/> <method name="launchActivity(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Bundle;)Landroid/app/Activity;"/> <method name="launchActivityWithIntent(Ljava/lang/String;Ljava/lang/Class;Landroid/content/Intent;)Landroid/app/Activity;" since="3"/> @@ -45658,6 +44087,7 @@ </class> <class name="android/test/MoreAsserts" since="1" deprecated="24" removed="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="assertAssignableFrom(Ljava/lang/Class;Ljava/lang/Class;)V"/> <method name="assertAssignableFrom(Ljava/lang/Class;Ljava/lang/Object;)V"/> <method name="assertContainsRegex(Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;"/> @@ -45766,33 +44196,33 @@ <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="clickView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V"/> - <method name="drag(Landroid/test/ActivityInstrumentationTestCase;FFFFI)V" deprecated="15"/> + <method name="drag(Landroid/test/ActivityInstrumentationTestCase;FFFFI)V" deprecated="16"/> <method name="drag(Landroid/test/InstrumentationTestCase;FFFFI)V" since="3"/> - <method name="dragQuarterScreenDown(Landroid/test/ActivityInstrumentationTestCase;)V" deprecated="15"/> + <method name="dragQuarterScreenDown(Landroid/test/ActivityInstrumentationTestCase;)V" deprecated="16"/> <method name="dragQuarterScreenDown(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;)V" since="3"/> - <method name="dragQuarterScreenUp(Landroid/test/ActivityInstrumentationTestCase;)V" deprecated="15"/> + <method name="dragQuarterScreenUp(Landroid/test/ActivityInstrumentationTestCase;)V" deprecated="16"/> <method name="dragQuarterScreenUp(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;)V" since="3"/> - <method name="dragViewBy(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" deprecated="15"/> - <method name="dragViewBy(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3" deprecated="15"/> - <method name="dragViewTo(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" deprecated="15"/> + <method name="dragViewBy(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" deprecated="16"/> + <method name="dragViewBy(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3" deprecated="16"/> + <method name="dragViewTo(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" deprecated="16"/> <method name="dragViewTo(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3"/> - <method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" deprecated="15"/> - <method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" deprecated="15"/> + <method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" deprecated="16"/> + <method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" deprecated="16"/> <method name="dragViewToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/View;)V" since="3"/> <method name="dragViewToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/View;I)V" since="3"/> - <method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" deprecated="15"/> - <method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" deprecated="15"/> + <method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" deprecated="16"/> + <method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" deprecated="16"/> <method name="dragViewToTop(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" since="3"/> <method name="dragViewToTop(Landroid/test/InstrumentationTestCase;Landroid/view/View;I)V" since="3"/> - <method name="dragViewToX(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" deprecated="15"/> + <method name="dragViewToX(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" deprecated="16"/> <method name="dragViewToX(Landroid/test/InstrumentationTestCase;Landroid/view/View;II)I" since="3"/> - <method name="dragViewToY(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" deprecated="15"/> + <method name="dragViewToY(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" deprecated="16"/> <method name="dragViewToY(Landroid/test/InstrumentationTestCase;Landroid/view/View;II)I" since="3"/> - <method name="longClickView(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" deprecated="15"/> + <method name="longClickView(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" deprecated="16"/> <method name="longClickView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" since="3"/> - <method name="scrollToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" deprecated="15"/> + <method name="scrollToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" deprecated="16"/> <method name="scrollToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/ViewGroup;)V" since="3"/> - <method name="scrollToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" deprecated="15"/> + <method name="scrollToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" deprecated="16"/> <method name="scrollToTop(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/ViewGroup;)V" since="3"/> <method name="tapView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V"/> <method name="touchAndCancelView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V"/> @@ -45803,6 +44233,7 @@ </class> <class name="android/test/ViewAsserts" since="1" deprecated="24" removed="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="assertBaselineAligned(Landroid/view/View;Landroid/view/View;)V"/> <method name="assertBottomAligned(Landroid/view/View;Landroid/view/View;)V"/> <method name="assertBottomAligned(Landroid/view/View;Landroid/view/View;I)V"/> @@ -45933,22 +44364,24 @@ <extends name="java/lang/Object"/> <implements name="android/text/GetChars"/> <implements name="java/lang/CharSequence"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/CharSequence;[CII)V" since="29"/> <method name="make(Ljava/lang/CharSequence;[CII)Landroid/text/AlteredCharSequence;"/> </class> <class name="android/text/AndroidCharacter" since="1" deprecated="26"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="getDirectionalities([C[BI)V" deprecated="29"/> - <method name="getEastAsianWidth(C)I" since="8" deprecated="29"/> - <method name="getEastAsianWidths([CII[B)V" since="8" deprecated="29"/> - <method name="getMirror(C)C" deprecated="29"/> - <method name="mirror([CII)Z" deprecated="29"/> - <field name="EAST_ASIAN_WIDTH_AMBIGUOUS" since="8" deprecated="29"/> - <field name="EAST_ASIAN_WIDTH_FULL_WIDTH" since="8" deprecated="29"/> - <field name="EAST_ASIAN_WIDTH_HALF_WIDTH" since="8" deprecated="29"/> - <field name="EAST_ASIAN_WIDTH_NARROW" since="8" deprecated="29"/> - <field name="EAST_ASIAN_WIDTH_NEUTRAL" since="8" deprecated="29"/> - <field name="EAST_ASIAN_WIDTH_WIDE" since="8" deprecated="29"/> + <method name="<init>()V"/> + <method name="getDirectionalities([C[BI)V"/> + <method name="getEastAsianWidth(C)I" since="8"/> + <method name="getEastAsianWidths([CII[B)V" since="8"/> + <method name="getMirror(C)C"/> + <method name="mirror([CII)Z"/> + <field name="EAST_ASIAN_WIDTH_AMBIGUOUS" since="8"/> + <field name="EAST_ASIAN_WIDTH_FULL_WIDTH" since="8"/> + <field name="EAST_ASIAN_WIDTH_HALF_WIDTH" since="8"/> + <field name="EAST_ASIAN_WIDTH_NARROW" since="8"/> + <field name="EAST_ASIAN_WIDTH_NEUTRAL" since="8"/> + <field name="EAST_ASIAN_WIDTH_WIDE" since="8"/> </class> <class name="android/text/Annotation" since="1"> <extends name="java/lang/Object"/> @@ -45960,11 +44393,15 @@ </class> <class name="android/text/AutoText" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/res/Resources;)V" since="29"/> <method name="get(Ljava/lang/CharSequence;IILandroid/view/View;)Ljava/lang/String;"/> <method name="getSize(Landroid/view/View;)I" since="3"/> </class> <class name="android/text/BidiFormatter" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ZILandroid/text/TextDirectionHeuristic;)V" since="29"/> <method name="getInstance()Landroid/text/BidiFormatter;"/> <method name="getInstance(Ljava/util/Locale;)Landroid/text/BidiFormatter;"/> <method name="getInstance(Z)Landroid/text/BidiFormatter;"/> @@ -46009,10 +44446,10 @@ </class> <class name="android/text/ClipboardManager" since="1" deprecated="11"> <extends name="java/lang/Object"/> - <method name="<init>()V" since="11" deprecated="29"/> - <method name="getText()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="hasText()Z" deprecated="29"/> - <method name="setText(Ljava/lang/CharSequence;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="getText()Ljava/lang/CharSequence;"/> + <method name="hasText()Z"/> + <method name="setText(Ljava/lang/CharSequence;)V"/> </class> <class name="android/text/DynamicLayout" since="1"> <extends name="android/text/Layout"/> @@ -46022,6 +44459,7 @@ </class> <class name="android/text/DynamicLayout$Builder" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="build()Landroid/text/DynamicLayout;"/> <method name="obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder;"/> <method name="setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/DynamicLayout$Builder;"/> @@ -46068,6 +44506,7 @@ </class> <class name="android/text/Html" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="escapeHtml(Ljava/lang/CharSequence;)Ljava/lang/String;" since="16"/> <method name="fromHtml(Ljava/lang/String;)Landroid/text/Spanned;" deprecated="24"/> <method name="fromHtml(Ljava/lang/String;I)Landroid/text/Spanned;" since="24"/> @@ -46221,17 +44660,18 @@ <method name="valueOf(Ljava/lang/String;)Landroid/text/Layout$Alignment;"/> <method name="values()[Landroid/text/Layout$Alignment;"/> <field name="ALIGN_CENTER"/> - <field name="ALIGN_LEFT" since="28" removed="29"/> <field name="ALIGN_NORMAL"/> <field name="ALIGN_OPPOSITE"/> - <field name="ALIGN_RIGHT" since="28" removed="29"/> </class> <class name="android/text/Layout$Directions" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([I)V" since="29"/> </class> <class name="android/text/LoginFilter" since="1"> <extends name="java/lang/Object"/> <implements name="android/text/InputFilter"/> + <method name="<init>()V"/> <method name="isAllowed(C)Z"/> <method name="onInvalidCharacter(C)V"/> <method name="onStart()V"/> @@ -46268,6 +44708,7 @@ <class name="android/text/PrecomputedText" since="28"> <extends name="java/lang/Object"/> <implements name="android/text/Spannable"/> + <method name="<init>()V"/> <method name="create(Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;)Landroid/text/PrecomputedText;"/> <method name="getBounds(IILandroid/graphics/Rect;)V"/> <method name="getParagraphCount()I"/> @@ -46278,6 +44719,8 @@ </class> <class name="android/text/PrecomputedText$Params" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;II)V" since="29"/> <method name="getBreakStrategy()I"/> <method name="getHyphenationFrequency()I"/> <method name="getTextDirection()Landroid/text/TextDirectionHeuristic;"/> @@ -46285,7 +44728,6 @@ </class> <class name="android/text/PrecomputedText$Params$Builder" since="28"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/text/PrecomputedText$Params;)V" since="29"/> <method name="<init>(Landroid/text/TextPaint;)V"/> <method name="build()Landroid/text/PrecomputedText$Params;"/> <method name="setBreakStrategy(I)Landroid/text/PrecomputedText$Params$Builder;"/> @@ -46294,6 +44736,7 @@ </class> <class name="android/text/Selection" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="extendDown(Landroid/text/Spannable;Landroid/text/Layout;)Z"/> <method name="extendLeft(Landroid/text/Spannable;Landroid/text/Layout;)Z"/> <method name="extendRight(Landroid/text/Spannable;Landroid/text/Layout;)Z"/> @@ -46336,7 +44779,8 @@ <method name="newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable;"/> </class> <class name="android/text/SpannableString" since="1"> - <extends name="java/lang/Object"/> + <extends name="android/text/SpannableStringInternal" removed="29"/> + <extends name="java/lang/Object" since="29"/> <implements name="android/text/GetChars"/> <implements name="android/text/Spannable"/> <implements name="java/lang/CharSequence"/> @@ -46358,7 +44802,7 @@ <method name="append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;"/> <method name="append(Ljava/lang/CharSequence;Ljava/lang/Object;I)Landroid/text/SpannableStringBuilder;" since="21"/> <method name="delete(II)Landroid/text/SpannableStringBuilder;"/> - <method name="getTextRunCursor(IIIIILandroid/graphics/Paint;)I" since="11" deprecated="15"/> + <method name="getTextRunCursor(IIIIILandroid/graphics/Paint;)I" since="11" deprecated="16"/> <method name="getTextWatcherDepth()I" since="23"/> <method name="insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;"/> <method name="insert(ILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;"/> @@ -46366,6 +44810,18 @@ <method name="replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;"/> <method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;"/> </class> + <class name="android/text/SpannableStringInternal" since="1" removed="29"> + <extends name="java/lang/Object"/> + <method name="<init>()V"/> + <method name="charAt(I)C"/> + <method name="getChars(II[CI)V"/> + <method name="getSpanEnd(Ljava/lang/Object;)I"/> + <method name="getSpanFlags(Ljava/lang/Object;)I"/> + <method name="getSpanStart(Ljava/lang/Object;)I"/> + <method name="getSpans(IILjava/lang/Class;)[Ljava/lang/Object;"/> + <method name="length()I"/> + <method name="nextSpanTransition(IILjava/lang/Class;)I"/> + </class> <class name="android/text/Spanned" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/CharSequence"/> @@ -46392,7 +44848,8 @@ <field name="SPAN_USER_SHIFT"/> </class> <class name="android/text/SpannedString" since="1"> - <extends name="java/lang/Object"/> + <extends name="android/text/SpannableStringInternal" removed="29"/> + <extends name="java/lang/Object" since="29"/> <implements name="android/text/GetChars"/> <implements name="android/text/Spanned"/> <implements name="java/lang/CharSequence"/> @@ -46407,6 +44864,7 @@ </class> <class name="android/text/StaticLayout$Builder" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="build()Landroid/text/StaticLayout;"/> <method name="obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;"/> <method name="setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;"/> @@ -46449,11 +44907,10 @@ <field name="density" since="5"/> <field name="drawableState"/> <field name="linkColor"/> - <field name="underlineColor" since="29"/> - <field name="underlineThickness" since="29"/> </class> <class name="android/text/TextUtils" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="commaEllipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLjava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;" deprecated="26"/> <method name="concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V"/> @@ -46486,7 +44943,6 @@ <method name="lastIndexOf(Ljava/lang/CharSequence;CI)I"/> <method name="lastIndexOf(Ljava/lang/CharSequence;CII)I"/> <method name="listEllipsize(Landroid/content/Context;Ljava/util/List;Ljava/lang/String;Landroid/text/TextPaint;FI)Ljava/lang/CharSequence;" since="26"/> - <method name="makeSafeForPresentation(Ljava/lang/String;IFI)Ljava/lang/CharSequence;" since="29"/> <method name="regionMatches(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z"/> <method name="replace(Ljava/lang/CharSequence;[Ljava/lang/String;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;"/> <method name="split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;"/> @@ -46498,9 +44954,6 @@ <field name="CAP_MODE_SENTENCES" since="3"/> <field name="CAP_MODE_WORDS" since="3"/> <field name="CHAR_SEQUENCE_CREATOR"/> - <field name="SAFE_STRING_FLAG_FIRST_LINE" since="29"/> - <field name="SAFE_STRING_FLAG_SINGLE_LINE" since="29"/> - <field name="SAFE_STRING_FLAG_TRIM" since="29"/> </class> <class name="android/text/TextUtils$EllipsizeCallback" since="1"> <extends name="java/lang/Object"/> @@ -46523,7 +44976,6 @@ <method name="valueOf(Ljava/lang/String;)Landroid/text/TextUtils$TruncateAt;"/> <method name="values()[Landroid/text/TextUtils$TruncateAt;"/> <field name="END"/> - <field name="END_SMALL" since="28" removed="29"/> <field name="MARQUEE" since="2"/> <field name="MIDDLE"/> <field name="START"/> @@ -46606,7 +45058,7 @@ <field name="FORMAT_SHOW_TIME"/> <field name="FORMAT_SHOW_WEEKDAY"/> <field name="FORMAT_SHOW_YEAR"/> - <field name="FORMAT_UTC" deprecated="15"/> + <field name="FORMAT_UTC" deprecated="16"/> <field name="HOUR_IN_MILLIS"/> <field name="HOUR_MINUTE_24" deprecated="17"/> <field name="LENGTH_LONG" deprecated="17"/> @@ -46631,70 +45083,70 @@ <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="formatFileSize(Landroid/content/Context;J)Ljava/lang/String;"/> - <method name="formatIpAddress(I)Ljava/lang/String;" deprecated="15"/> + <method name="formatIpAddress(I)Ljava/lang/String;" deprecated="16"/> <method name="formatShortFileSize(Landroid/content/Context;J)Ljava/lang/String;" since="5"/> </class> <class name="android/text/format/Time" since="3" deprecated="22"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Landroid/text/format/Time;)V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <method name="after(Landroid/text/format/Time;)Z" deprecated="29"/> - <method name="before(Landroid/text/format/Time;)Z" deprecated="29"/> - <method name="clear(Ljava/lang/String;)V" deprecated="29"/> - <method name="compare(Landroid/text/format/Time;Landroid/text/format/Time;)I" deprecated="29"/> - <method name="format(Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="format2445()Ljava/lang/String;" deprecated="29"/> - <method name="format3339(Z)Ljava/lang/String;" deprecated="29"/> - <method name="getActualMaximum(I)I" deprecated="29"/> - <method name="getCurrentTimezone()Ljava/lang/String;" deprecated="29"/> - <method name="getJulianDay(JJ)I" deprecated="29"/> - <method name="getJulianMondayFromWeeksSinceEpoch(I)I" since="11" deprecated="29"/> - <method name="getWeekNumber()I" deprecated="29"/> - <method name="getWeeksSinceEpochFromJulianDay(II)I" since="11" deprecated="29"/> - <method name="isEpoch(Landroid/text/format/Time;)Z" deprecated="29"/> - <method name="normalize(Z)J" deprecated="29"/> - <method name="parse(Ljava/lang/String;)Z" deprecated="29"/> - <method name="parse3339(Ljava/lang/String;)Z" deprecated="29"/> - <method name="set(III)V" deprecated="29"/> - <method name="set(IIIIII)V" deprecated="29"/> - <method name="set(J)V" deprecated="29"/> - <method name="set(Landroid/text/format/Time;)V" deprecated="29"/> - <method name="setJulianDay(I)J" deprecated="29"/> - <method name="setToNow()V" deprecated="29"/> - <method name="switchTimezone(Ljava/lang/String;)V" deprecated="29"/> - <method name="toMillis(Z)J" deprecated="29"/> - <field name="EPOCH_JULIAN_DAY" deprecated="29"/> - <field name="FRIDAY" deprecated="29"/> - <field name="HOUR" deprecated="29"/> - <field name="MINUTE" deprecated="29"/> - <field name="MONDAY" deprecated="29"/> - <field name="MONDAY_BEFORE_JULIAN_EPOCH" since="11" deprecated="29"/> - <field name="MONTH" deprecated="29"/> - <field name="MONTH_DAY" deprecated="29"/> - <field name="SATURDAY" deprecated="29"/> - <field name="SECOND" deprecated="29"/> - <field name="SUNDAY" deprecated="29"/> - <field name="THURSDAY" deprecated="29"/> - <field name="TIMEZONE_UTC" deprecated="29"/> - <field name="TUESDAY" deprecated="29"/> - <field name="WEDNESDAY" deprecated="29"/> - <field name="WEEK_DAY" deprecated="29"/> - <field name="WEEK_NUM" deprecated="29"/> - <field name="YEAR" deprecated="29"/> - <field name="YEAR_DAY" deprecated="29"/> - <field name="allDay" deprecated="29"/> - <field name="gmtoff" deprecated="29"/> - <field name="hour" deprecated="29"/> - <field name="isDst" deprecated="29"/> - <field name="minute" deprecated="29"/> - <field name="month" deprecated="29"/> - <field name="monthDay" deprecated="29"/> - <field name="second" deprecated="29"/> - <field name="timezone" deprecated="29"/> - <field name="weekDay" deprecated="29"/> - <field name="year" deprecated="29"/> - <field name="yearDay" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Landroid/text/format/Time;)V"/> + <method name="<init>(Ljava/lang/String;)V"/> + <method name="after(Landroid/text/format/Time;)Z"/> + <method name="before(Landroid/text/format/Time;)Z"/> + <method name="clear(Ljava/lang/String;)V"/> + <method name="compare(Landroid/text/format/Time;Landroid/text/format/Time;)I"/> + <method name="format(Ljava/lang/String;)Ljava/lang/String;"/> + <method name="format2445()Ljava/lang/String;"/> + <method name="format3339(Z)Ljava/lang/String;"/> + <method name="getActualMaximum(I)I"/> + <method name="getCurrentTimezone()Ljava/lang/String;"/> + <method name="getJulianDay(JJ)I"/> + <method name="getJulianMondayFromWeeksSinceEpoch(I)I" since="11"/> + <method name="getWeekNumber()I"/> + <method name="getWeeksSinceEpochFromJulianDay(II)I" since="11"/> + <method name="isEpoch(Landroid/text/format/Time;)Z"/> + <method name="normalize(Z)J"/> + <method name="parse(Ljava/lang/String;)Z"/> + <method name="parse3339(Ljava/lang/String;)Z"/> + <method name="set(III)V"/> + <method name="set(IIIIII)V"/> + <method name="set(J)V"/> + <method name="set(Landroid/text/format/Time;)V"/> + <method name="setJulianDay(I)J"/> + <method name="setToNow()V"/> + <method name="switchTimezone(Ljava/lang/String;)V"/> + <method name="toMillis(Z)J"/> + <field name="EPOCH_JULIAN_DAY"/> + <field name="FRIDAY"/> + <field name="HOUR"/> + <field name="MINUTE"/> + <field name="MONDAY"/> + <field name="MONDAY_BEFORE_JULIAN_EPOCH" since="11"/> + <field name="MONTH"/> + <field name="MONTH_DAY"/> + <field name="SATURDAY"/> + <field name="SECOND"/> + <field name="SUNDAY"/> + <field name="THURSDAY"/> + <field name="TIMEZONE_UTC"/> + <field name="TUESDAY"/> + <field name="WEDNESDAY"/> + <field name="WEEK_DAY"/> + <field name="WEEK_NUM"/> + <field name="YEAR"/> + <field name="YEAR_DAY"/> + <field name="allDay"/> + <field name="gmtoff"/> + <field name="hour"/> + <field name="isDst"/> + <field name="minute"/> + <field name="month"/> + <field name="monthDay"/> + <field name="second"/> + <field name="timezone"/> + <field name="weekDay"/> + <field name="year"/> + <field name="yearDay"/> </class> <class name="android/text/method/ArrowKeyMovementMethod" since="1"> <extends name="android/text/method/BaseMovementMethod" since="11"/> @@ -46908,6 +45360,7 @@ </class> <class name="android/text/method/Touch" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getInitialScrollX(Landroid/widget/TextView;Landroid/text/Spannable;)I" since="3"/> <method name="getInitialScrollY(Landroid/widget/TextView;Landroid/text/Spannable;)I" since="3"/> <method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z"/> @@ -46989,7 +45442,6 @@ <method name="getVerticalAlignment()I" since="3"/> <field name="ALIGN_BASELINE" since="3"/> <field name="ALIGN_BOTTOM" since="3"/> - <field name="ALIGN_CENTER" since="29"/> <field name="mVerticalAlignment" since="3"/> </class> <class name="android/text/style/EasyEditSpan" since="14"> @@ -47025,8 +45477,8 @@ <method name="<init>(Landroid/content/Context;Landroid/graphics/Bitmap;I)V" since="4"/> <method name="<init>(Landroid/content/Context;Landroid/net/Uri;)V"/> <method name="<init>(Landroid/content/Context;Landroid/net/Uri;I)V" since="3"/> - <method name="<init>(Landroid/graphics/Bitmap;)V" deprecated="15"/> - <method name="<init>(Landroid/graphics/Bitmap;I)V" since="3" deprecated="15"/> + <method name="<init>(Landroid/graphics/Bitmap;)V" deprecated="16"/> + <method name="<init>(Landroid/graphics/Bitmap;I)V" since="3" deprecated="16"/> <method name="<init>(Landroid/graphics/drawable/Drawable;)V"/> <method name="<init>(Landroid/graphics/drawable/Drawable;I)V" since="3"/> <method name="<init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;)V"/> @@ -47058,28 +45510,12 @@ <implements name="android/text/style/ParagraphStyle"/> <method name="drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;III)V"/> </class> - <class name="android/text/style/LineBackgroundSpan$Standard" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/text/ParcelableSpan"/> - <implements name="android/text/style/LineBackgroundSpan"/> - <method name="<init>(I)V"/> - <method name="<init>(Landroid/os/Parcel;)V"/> - <method name="getColor()I"/> - </class> <class name="android/text/style/LineHeightSpan" since="1"> <extends name="java/lang/Object"/> <implements name="android/text/style/ParagraphStyle"/> <implements name="android/text/style/WrapTogetherSpan"/> <method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V"/> </class> - <class name="android/text/style/LineHeightSpan$Standard" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/text/ParcelableSpan"/> - <implements name="android/text/style/LineHeightSpan"/> - <method name="<init>(I)V"/> - <method name="<init>(Landroid/os/Parcel;)V"/> - <method name="getHeight()I"/> - </class> <class name="android/text/style/LineHeightSpan$WithDensity" since="5"> <extends name="java/lang/Object"/> <implements name="android/text/style/LineHeightSpan"/> @@ -47182,17 +45618,16 @@ <method name="getLocale()Ljava/lang/String;" deprecated="24"/> <method name="getLocaleObject()Ljava/util/Locale;" since="24"/> <method name="getSuggestions()[Ljava/lang/String;"/> - <method name="getUnderlineColor()I" since="29"/> <method name="setFlags(I)V"/> - <field name="ACTION_SUGGESTION_PICKED" deprecated="29"/> + <field name="ACTION_SUGGESTION_PICKED"/> <field name="CREATOR"/> <field name="FLAG_AUTO_CORRECTION" since="15"/> <field name="FLAG_EASY_CORRECT"/> <field name="FLAG_MISSPELLED"/> <field name="SUGGESTIONS_MAX_SIZE"/> - <field name="SUGGESTION_SPAN_PICKED_AFTER" deprecated="29"/> - <field name="SUGGESTION_SPAN_PICKED_BEFORE" deprecated="29"/> - <field name="SUGGESTION_SPAN_PICKED_HASHCODE" deprecated="29"/> + <field name="SUGGESTION_SPAN_PICKED_AFTER"/> + <field name="SUGGESTION_SPAN_PICKED_BEFORE"/> + <field name="SUGGESTION_SPAN_PICKED_HASHCODE"/> </class> <class name="android/text/style/SuperscriptSpan" since="1"> <extends name="android/text/style/MetricAffectingSpan"/> @@ -47218,20 +45653,10 @@ <method name="<init>(Landroid/os/Parcel;)V" since="3"/> <method name="<init>(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V"/> <method name="getFamily()Ljava/lang/String;"/> - <method name="getFontFeatureSettings()Ljava/lang/String;" since="29"/> - <method name="getFontVariationSettings()Ljava/lang/String;" since="29"/> <method name="getLinkTextColor()Landroid/content/res/ColorStateList;"/> - <method name="getShadowColor()I" since="29"/> - <method name="getShadowDx()F" since="29"/> - <method name="getShadowDy()F" since="29"/> - <method name="getShadowRadius()F" since="29"/> <method name="getTextColor()Landroid/content/res/ColorStateList;"/> - <method name="getTextFontWeight()I" since="29"/> - <method name="getTextLocales()Landroid/os/LocaleList;" since="29"/> <method name="getTextSize()I"/> <method name="getTextStyle()I"/> - <method name="getTypeface()Landroid/graphics/Typeface;" since="29"/> - <method name="isElegantTextHeight()Z" since="29"/> </class> <class name="android/text/style/TtsSpan" since="21"> <extends name="java/lang/Object"/> @@ -47490,11 +45915,9 @@ <extends name="java/lang/Object"/> <method name="<init>()V"/> <method name="addLinks(Landroid/text/Spannable;I)Z"/> - <method name="addLinks(Landroid/text/Spannable;ILjava/util/function/Function;)Z" since="29"/> <method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;)Z"/> <method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)Z"/> <method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)Z" since="24"/> - <method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;Ljava/util/function/Function;)Z" since="29"/> <method name="addLinks(Landroid/widget/TextView;I)Z"/> <method name="addLinks(Landroid/widget/TextView;Ljava/util/regex/Pattern;Ljava/lang/String;)V"/> <method name="addLinks(Landroid/widget/TextView;Ljava/util/regex/Pattern;Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V"/> @@ -47623,7 +46046,6 @@ <method name="<init>(Landroid/view/ViewGroup;Landroid/view/ViewGroup;)V" deprecated="21"/> <method name="enter()V"/> <method name="exit()V"/> - <method name="getCurrentScene(Landroid/view/ViewGroup;)Landroid/transition/Scene;" since="29"/> <method name="getSceneForLayout(Landroid/view/ViewGroup;ILandroid/content/Context;)Landroid/transition/Scene;"/> <method name="getSceneRoot()Landroid/view/ViewGroup;"/> <method name="setEnterAction(Ljava/lang/Runnable;)V"/> @@ -47712,6 +46134,8 @@ </class> <class name="android/transition/TransitionInflater" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="from(Landroid/content/Context;)Landroid/transition/TransitionInflater;"/> <method name="inflateTransition(I)Landroid/transition/Transition;"/> <method name="inflateTransitionManager(ILandroid/view/ViewGroup;)Landroid/transition/TransitionManager;"/> @@ -47769,8 +46193,7 @@ </class> <class name="android/transition/TransitionValues" since="19"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Landroid/view/View;)V" since="29"/> + <method name="<init>()V"/> <field name="values"/> <field name="view"/> </class> @@ -47818,7 +46241,6 @@ <method name="containsAll(Ljava/util/Collection;)Z"/> <method name="ensureCapacity(I)V"/> <method name="indexOfKey(Ljava/lang/Object;)I" since="21"/> - <method name="indexOfValue(Ljava/lang/Object;)I" since="29"/> <method name="keyAt(I)Ljava/lang/Object;"/> <method name="putAll(Landroid/util/ArrayMap;)V"/> <method name="removeAll(Ljava/util/Collection;)Z"/> @@ -47834,8 +46256,6 @@ <method name="<init>()V"/> <method name="<init>(I)V"/> <method name="<init>(Landroid/util/ArraySet;)V"/> - <method name="<init>(Ljava/util/Collection;)V" since="29"/> - <method name="<init>([Ljava/lang/Object;)V" since="30"/> <method name="addAll(Landroid/util/ArraySet;)V"/> <method name="ensureCapacity(I)V"/> <method name="indexOf(Ljava/lang/Object;)I"/> @@ -47882,6 +46302,7 @@ </class> <class name="android/util/Base64" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="decode(Ljava/lang/String;I)[B"/> <method name="decode([BI)[B"/> <method name="decode([BIII)[B"/> @@ -47910,16 +46331,16 @@ </class> <class name="android/util/Config" since="1" deprecated="14"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="12"/> - <field name="DEBUG" deprecated="15"/> - <field name="LOGD" deprecated="15"/> - <field name="LOGV" deprecated="15"/> - <field name="PROFILE" deprecated="15"/> - <field name="RELEASE" deprecated="15"/> + <method name="<init>()V"/> + <field name="DEBUG" deprecated="16"/> + <field name="LOGD" deprecated="16"/> + <field name="LOGV" deprecated="16"/> + <field name="PROFILE" deprecated="16"/> + <field name="RELEASE" deprecated="16"/> </class> <class name="android/util/DebugUtils" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="12"/> + <method name="<init>()V"/> <method name="isObjectSelected(Ljava/lang/Object;)Z"/> </class> <class name="android/util/DisplayMetrics" since="1"> @@ -47928,10 +46349,6 @@ <method name="equals(Landroid/util/DisplayMetrics;)Z" since="17"/> <method name="setTo(Landroid/util/DisplayMetrics;)V"/> <method name="setToDefaults()V"/> - <field name="DENSITY_140" since="29"/> - <field name="DENSITY_180" since="29"/> - <field name="DENSITY_200" since="29"/> - <field name="DENSITY_220" since="29"/> <field name="DENSITY_260" since="25"/> <field name="DENSITY_280" since="22"/> <field name="DENSITY_300" since="25"/> @@ -47940,9 +46357,7 @@ <field name="DENSITY_400" since="19"/> <field name="DENSITY_420" since="23"/> <field name="DENSITY_440" since="28"/> - <field name="DENSITY_450" since="29"/> <field name="DENSITY_560" since="21"/> - <field name="DENSITY_600" since="29"/> <field name="DENSITY_DEFAULT" since="4"/> <field name="DENSITY_DEVICE_STABLE" since="24"/> <field name="DENSITY_HIGH" since="4"/> @@ -47962,7 +46377,7 @@ </class> <class name="android/util/EventLog" since="8"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="12"/> + <method name="<init>()V"/> <method name="getTagCode(Ljava/lang/String;)I"/> <method name="getTagName(I)Ljava/lang/String;"/> <method name="readEvents([ILjava/util/Collection;)V"/> @@ -47974,6 +46389,8 @@ </class> <class name="android/util/EventLog$Event" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>([B)V" since="29"/> <method name="getData()Ljava/lang/Object;"/> <method name="getProcessId()I"/> <method name="getTag()I"/> @@ -47982,18 +46399,21 @@ </class> <class name="android/util/EventLogTags" since="1" deprecated="9"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Ljava/io/BufferedReader;)V" deprecated="29"/> - <method name="get(I)Landroid/util/EventLogTags$Description;" deprecated="29"/> - <method name="get(Ljava/lang/String;)Landroid/util/EventLogTags$Description;" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Ljava/io/BufferedReader;)V"/> + <method name="get(I)Landroid/util/EventLogTags$Description;"/> + <method name="get(Ljava/lang/String;)Landroid/util/EventLogTags$Description;"/> </class> - <class name="android/util/EventLogTags$Description" since="1" deprecated="29"> + <class name="android/util/EventLogTags$Description" since="1"> <extends name="java/lang/Object"/> - <field name="mName" deprecated="29"/> - <field name="mTag" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/lang/String;)V" since="29"/> + <field name="mName"/> + <field name="mTag"/> </class> <class name="android/util/FloatMath" since="1" deprecated="22"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="ceil(F)F" removed="23"/> <method name="cos(F)F" removed="23"/> <method name="exp(F)F" since="17" removed="23"/> @@ -48130,6 +46550,7 @@ </class> <class name="android/util/LayoutDirection" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="INHERIT"/> <field name="LOCALE"/> <field name="LTR"/> @@ -48137,6 +46558,7 @@ </class> <class name="android/util/Log" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="d(Ljava/lang/String;Ljava/lang/String;)I"/> <method name="d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I"/> <method name="e(Ljava/lang/String;Ljava/lang/String;)I"/> @@ -48232,43 +46654,43 @@ </class> <class name="android/util/MutableBoolean" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(Z)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(Z)V"/> + <field name="value"/> </class> <class name="android/util/MutableByte" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(B)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(B)V"/> + <field name="value"/> </class> <class name="android/util/MutableChar" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(C)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(C)V"/> + <field name="value"/> </class> <class name="android/util/MutableDouble" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(D)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(D)V"/> + <field name="value"/> </class> <class name="android/util/MutableFloat" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(F)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(F)V"/> + <field name="value"/> </class> <class name="android/util/MutableInt" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(I)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(I)V"/> + <field name="value"/> </class> <class name="android/util/MutableLong" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(J)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(J)V"/> + <field name="value"/> </class> <class name="android/util/MutableShort" since="21" deprecated="28"> <extends name="java/lang/Object"/> - <method name="<init>(S)V" deprecated="29"/> - <field name="value" deprecated="29"/> + <method name="<init>(S)V"/> + <field name="value"/> </class> <class name="android/util/NoSuchPropertyException" since="14"> <extends name="java/lang/RuntimeException"/> @@ -48283,6 +46705,7 @@ </class> <class name="android/util/Patterns" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="concatGroups(Ljava/util/regex/Matcher;)Ljava/lang/String;"/> <method name="digitsAndPlusOnly(Ljava/util/regex/Matcher;)Ljava/lang/String;"/> <field name="DOMAIN_NAME"/> @@ -48403,7 +46826,6 @@ <method name="keyAt(I)I"/> <method name="put(IZ)V"/> <method name="removeAt(I)V" since="28"/> - <method name="setValueAt(IZ)V" since="29"/> <method name="size()I"/> <method name="valueAt(I)Z"/> </class> @@ -48423,7 +46845,6 @@ <method name="keyAt(I)I"/> <method name="put(II)V"/> <method name="removeAt(I)V" since="3"/> - <method name="setValueAt(II)V" since="29"/> <method name="size()I"/> <method name="valueAt(I)I"/> </class> @@ -48448,7 +46869,7 @@ </class> <class name="android/util/StateSet" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="12"/> + <method name="<init>()V"/> <method name="dump([I)Ljava/lang/String;"/> <method name="isWildCard([I)Z"/> <method name="stateSetMatches([II)Z"/> @@ -48459,7 +46880,7 @@ </class> <class name="android/util/StatsLog" since="28"> <extends name="java/lang/Object"/> - <method name="logBinaryPushStateChanged(Ljava/lang/String;JII[J)Z" since="29"/> + <method name="<init>()V"/> <method name="logEvent(I)Z"/> <method name="logStart(I)Z"/> <method name="logStop(I)Z"/> @@ -48471,13 +46892,14 @@ </class> <class name="android/util/TimeFormatException" since="1"> <extends name="java/lang/RuntimeException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> </class> <class name="android/util/TimeUtils" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="12"/> + <method name="<init>()V"/> <method name="getTimeZone(IZJLjava/lang/String;)Ljava/util/TimeZone;"/> <method name="getTimeZoneDatabaseVersion()Ljava/lang/String;" since="3"/> - <method name="getTimeZoneIdsForCountryCode(Ljava/lang/String;)Ljava/util/List;" since="29"/> </class> <class name="android/util/TimingLogger" since="1"> <extends name="java/lang/Object"/> @@ -48503,7 +46925,6 @@ <method name="getDimension(Landroid/util/DisplayMetrics;)F"/> <method name="getFloat()F"/> <method name="getFraction(FF)F"/> - <method name="isColorType()Z" since="29"/> <method name="setTo(Landroid/util/TypedValue;)V"/> <field name="COMPLEX_MANTISSA_MASK"/> <field name="COMPLEX_MANTISSA_SHIFT"/> @@ -48550,13 +46971,12 @@ <field name="data"/> <field name="density" since="4"/> <field name="resourceId"/> - <field name="sourceResourceId" since="29"/> <field name="string"/> <field name="type"/> </class> <class name="android/util/Xml" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="12"/> + <method name="<init>()V"/> <method name="asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet;"/> <method name="findEncodingByName(Ljava/lang/String;)Landroid/util/Xml$Encoding;"/> <method name="newPullParser()Lorg/xmlpull/v1/XmlPullParser;"/> @@ -48646,6 +47066,8 @@ </class> <class name="android/view/Choreographer" since="16"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Looper;I)V" since="29"/> <method name="getInstance()Landroid/view/Choreographer;"/> <method name="postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V"/> <method name="postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V"/> @@ -48680,23 +47102,21 @@ <method name="<init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V" since="23"/> <method name="applyOverrideConfiguration(Landroid/content/res/Configuration;)V" since="17"/> <method name="onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V"/> - <method name="setTheme(Landroid/content/res/Resources$Theme;)V" since="29"/> </class> <class name="android/view/Display" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAppVsyncOffsetNanos()J" since="21"/> <method name="getCurrentSizeRange(Landroid/graphics/Point;Landroid/graphics/Point;)V" since="16"/> - <method name="getCutout()Landroid/view/DisplayCutout;" since="29"/> <method name="getDisplayId()I"/> <method name="getFlags()I" since="17"/> <method name="getHdrCapabilities()Landroid/view/Display$HdrCapabilities;" since="24"/> - <method name="getHeight()I" deprecated="15"/> + <method name="getHeight()I" deprecated="16"/> <method name="getMetrics(Landroid/util/DisplayMetrics;)V"/> <method name="getMode()Landroid/view/Display$Mode;" since="23"/> <method name="getName()Ljava/lang/String;" since="17"/> - <method name="getOrientation()I" deprecated="15"/> + <method name="getOrientation()I" deprecated="16"/> <method name="getPixelFormat()I" deprecated="17"/> - <method name="getPreferredWideGamutColorSpace()Landroid/graphics/ColorSpace;" since="29"/> <method name="getPresentationDeadlineNanos()J" since="21"/> <method name="getRealMetrics(Landroid/util/DisplayMetrics;)V" since="17"/> <method name="getRealSize(Landroid/graphics/Point;)V" since="17"/> @@ -48707,7 +47127,7 @@ <method name="getState()I" since="20"/> <method name="getSupportedModes()[Landroid/view/Display$Mode;" since="23"/> <method name="getSupportedRefreshRates()[F" since="21" deprecated="23"/> - <method name="getWidth()I" deprecated="15"/> + <method name="getWidth()I" deprecated="16"/> <method name="isHdr()Z" since="26"/> <method name="isValid()Z" since="17"/> <method name="isWideColorGamut()Z" since="26"/> @@ -48730,6 +47150,7 @@ <class name="android/view/Display$HdrCapabilities" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getDesiredMaxAverageLuminance()F"/> <method name="getDesiredMaxLuminance()F"/> <method name="getDesiredMinLuminance()F"/> @@ -48737,13 +47158,14 @@ <field name="CREATOR"/> <field name="HDR_TYPE_DOLBY_VISION"/> <field name="HDR_TYPE_HDR10"/> - <field name="HDR_TYPE_HDR10_PLUS" since="29"/> <field name="HDR_TYPE_HLG"/> <field name="INVALID_LUMINANCE"/> </class> <class name="android/view/Display$Mode" since="23"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getModeId()I"/> <method name="getPhysicalHeight()I"/> <method name="getPhysicalWidth()I"/> @@ -48752,12 +47174,7 @@ </class> <class name="android/view/DisplayCutout" since="28"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/graphics/Insets;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V" since="29"/> - <method name="<init>(Landroid/graphics/Rect;Ljava/util/List;)V" deprecated="29"/> - <method name="getBoundingRectBottom()Landroid/graphics/Rect;" since="29"/> - <method name="getBoundingRectLeft()Landroid/graphics/Rect;" since="29"/> - <method name="getBoundingRectRight()Landroid/graphics/Rect;" since="29"/> - <method name="getBoundingRectTop()Landroid/graphics/Rect;" since="29"/> + <method name="<init>(Landroid/graphics/Rect;Ljava/util/List;)V"/> <method name="getBoundingRects()Ljava/util/List;"/> <method name="getSafeInsetBottom()I"/> <method name="getSafeInsetLeft()I"/> @@ -48766,13 +47183,16 @@ </class> <class name="android/view/DragAndDropPermissions" since="24"> <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> + <implements name="android/os/Parcelable" since="25"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="release()V"/> - <field name="CREATOR"/> + <field name="CREATOR" since="25"/> </class> <class name="android/view/DragEvent" since="11"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getAction()I"/> <method name="getClipData()Landroid/content/ClipData;"/> <method name="getClipDescription()Landroid/content/ClipDescription;"/> @@ -48790,6 +47210,7 @@ </class> <class name="android/view/FocusFinder" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="findNearestTouchable(Landroid/view/ViewGroup;III[I)Landroid/view/View;"/> <method name="findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;"/> <method name="findNextFocusFromRect(Landroid/view/ViewGroup;Landroid/graphics/Rect;I)Landroid/view/View;"/> @@ -48828,8 +47249,8 @@ <method name="<init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V" since="3"/> <method name="<init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" since="3"/> <method name="<init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;Z)V" since="8"/> - <method name="<init>(Landroid/view/GestureDetector$OnGestureListener;)V" deprecated="15"/> - <method name="<init>(Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" deprecated="15"/> + <method name="<init>(Landroid/view/GestureDetector$OnGestureListener;)V" deprecated="16"/> + <method name="<init>(Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" deprecated="16"/> <method name="isLongpressEnabled()Z"/> <method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="23"/> <method name="onTouchEvent(Landroid/view/MotionEvent;)Z"/> @@ -48905,6 +47326,7 @@ </class> <class name="android/view/HapticFeedbackConstants" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CLOCK_TICK" since="21"/> <field name="CONTEXT_CLICK" since="23"/> <field name="FLAG_IGNORE_GLOBAL_SETTING"/> @@ -48927,6 +47349,8 @@ <class name="android/view/InputDevice" since="9"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getControllerNumber()I" since="19"/> <method name="getDescriptor()Ljava/lang/String;" since="16"/> <method name="getDevice(I)Landroid/view/InputDevice;"/> @@ -48945,22 +47369,21 @@ <method name="hasKeys([I)[Z" since="19"/> <method name="hasMicrophone()Z" since="23"/> <method name="isEnabled()Z" since="27"/> - <method name="isExternal()Z" since="29"/> <method name="isVirtual()Z" since="16"/> <method name="supportsSource(I)Z" since="21"/> <field name="CREATOR"/> <field name="KEYBOARD_TYPE_ALPHABETIC"/> <field name="KEYBOARD_TYPE_NONE"/> <field name="KEYBOARD_TYPE_NON_ALPHABETIC"/> - <field name="MOTION_RANGE_ORIENTATION" deprecated="15"/> - <field name="MOTION_RANGE_PRESSURE" deprecated="15"/> - <field name="MOTION_RANGE_SIZE" deprecated="15"/> - <field name="MOTION_RANGE_TOOL_MAJOR" deprecated="15"/> - <field name="MOTION_RANGE_TOOL_MINOR" deprecated="15"/> - <field name="MOTION_RANGE_TOUCH_MAJOR" deprecated="15"/> - <field name="MOTION_RANGE_TOUCH_MINOR" deprecated="15"/> - <field name="MOTION_RANGE_X" deprecated="15"/> - <field name="MOTION_RANGE_Y" deprecated="15"/> + <field name="MOTION_RANGE_ORIENTATION" deprecated="16"/> + <field name="MOTION_RANGE_PRESSURE" deprecated="16"/> + <field name="MOTION_RANGE_SIZE" deprecated="16"/> + <field name="MOTION_RANGE_TOOL_MAJOR" deprecated="16"/> + <field name="MOTION_RANGE_TOOL_MINOR" deprecated="16"/> + <field name="MOTION_RANGE_TOUCH_MAJOR" deprecated="16"/> + <field name="MOTION_RANGE_TOUCH_MINOR" deprecated="16"/> + <field name="MOTION_RANGE_X" deprecated="16"/> + <field name="MOTION_RANGE_Y" deprecated="16"/> <field name="SOURCE_ANY"/> <field name="SOURCE_BLUETOOTH_STYLUS" since="23"/> <field name="SOURCE_CLASS_BUTTON"/> @@ -48987,6 +47410,8 @@ </class> <class name="android/view/InputDevice$MotionRange" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIFFFFF)V" since="29"/> <method name="getAxis()I" since="12"/> <method name="getFlat()F"/> <method name="getFuzz()F"/> @@ -49000,6 +47425,7 @@ <class name="android/view/InputEvent" since="9"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getDevice()Landroid/view/InputDevice;"/> <method name="getDeviceId()I"/> <method name="getEventTime()J" since="16"/> @@ -49009,6 +47435,7 @@ </class> <class name="android/view/InputQueue" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/view/InputQueue$Callback" since="9"> <extends name="java/lang/Object"/> @@ -49018,13 +47445,15 @@ <class name="android/view/KeyCharacterMap" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable" since="16"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="deviceHasKey(I)Z" since="3"/> <method name="deviceHasKeys([I)[Z" since="3"/> <method name="get(II)I"/> <method name="getDeadChar(II)I"/> <method name="getDisplayLabel(I)C"/> <method name="getEvents([C)[Landroid/view/KeyEvent;"/> - <method name="getKeyData(ILandroid/view/KeyCharacterMap$KeyData;)Z" deprecated="15"/> + <method name="getKeyData(ILandroid/view/KeyCharacterMap$KeyData;)Z" deprecated="16"/> <method name="getKeyboardType()I"/> <method name="getMatch(I[C)C"/> <method name="getMatch(I[CI)C"/> @@ -49033,7 +47462,7 @@ <method name="isPrintingKey(I)Z"/> <method name="load(I)Landroid/view/KeyCharacterMap;"/> <field name="ALPHA"/> - <field name="BUILT_IN_KEYBOARD" deprecated="15"/> + <field name="BUILT_IN_KEYBOARD" deprecated="16"/> <field name="COMBINING_ACCENT"/> <field name="COMBINING_ACCENT_MASK"/> <field name="CREATOR" since="16"/> @@ -49049,11 +47478,11 @@ </class> <class name="android/view/KeyCharacterMap$KeyData" since="1" deprecated="11"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> - <field name="META_LENGTH" deprecated="29"/> - <field name="displayLabel" deprecated="29"/> - <field name="meta" deprecated="29"/> - <field name="number" deprecated="29"/> + <method name="<init>()V"/> + <field name="META_LENGTH"/> + <field name="displayLabel"/> + <field name="meta"/> + <field name="number"/> </class> <class name="android/view/KeyCharacterMap$UnavailableException" since="11"> <extends name="android/util/AndroidRuntimeException"/> @@ -49071,15 +47500,15 @@ <method name="<init>(JJIIIIIIII)V" since="9"/> <method name="<init>(JLjava/lang/String;II)V" since="3"/> <method name="<init>(Landroid/view/KeyEvent;)V" since="3"/> - <method name="<init>(Landroid/view/KeyEvent;JI)V" deprecated="15"/> + <method name="<init>(Landroid/view/KeyEvent;JI)V" deprecated="16"/> <method name="changeAction(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;" since="3"/> <method name="changeFlags(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;" since="3"/> <method name="changeTimeRepeat(Landroid/view/KeyEvent;JI)Landroid/view/KeyEvent;" since="3"/> <method name="changeTimeRepeat(Landroid/view/KeyEvent;JII)Landroid/view/KeyEvent;" since="5"/> - <method name="dispatch(Landroid/view/KeyEvent$Callback;)Z" deprecated="15"/> + <method name="dispatch(Landroid/view/KeyEvent$Callback;)Z" deprecated="16"/> <method name="dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z" since="5"/> <method name="getAction()I"/> - <method name="getCharacters()Ljava/lang/String;" since="3" deprecated="29"/> + <method name="getCharacters()Ljava/lang/String;" since="3"/> <method name="getDeadChar(II)I"/> <method name="getDeviceId()I"/> <method name="getDisplayLabel()C"/> @@ -49088,7 +47517,7 @@ <method name="getFlags()I"/> <method name="getKeyCharacterMap()Landroid/view/KeyCharacterMap;" since="11"/> <method name="getKeyCode()I"/> - <method name="getKeyData(Landroid/view/KeyCharacterMap$KeyData;)Z" deprecated="15"/> + <method name="getKeyData(Landroid/view/KeyCharacterMap$KeyData;)Z" deprecated="16"/> <method name="getMatch([C)C"/> <method name="getMatch([CI)C"/> <method name="getMaxKeyCode()I" since="3"/> @@ -49126,7 +47555,7 @@ <method name="setSource(I)V" since="12"/> <method name="startTracking()V" since="5"/> <field name="ACTION_DOWN"/> - <field name="ACTION_MULTIPLE" deprecated="29"/> + <field name="ACTION_MULTIPLE"/> <field name="ACTION_UP"/> <field name="CREATOR"/> <field name="FLAG_CANCELED" since="5"/> @@ -49340,7 +47769,6 @@ <field name="KEYCODE_PLUS"/> <field name="KEYCODE_POUND"/> <field name="KEYCODE_POWER"/> - <field name="KEYCODE_PROFILE_SWITCH" since="29"/> <field name="KEYCODE_PROG_BLUE" since="11"/> <field name="KEYCODE_PROG_GREEN" since="11"/> <field name="KEYCODE_PROG_RED" since="11"/> @@ -49379,8 +47807,6 @@ <field name="KEYCODE_SYSTEM_NAVIGATION_UP" since="25"/> <field name="KEYCODE_T"/> <field name="KEYCODE_TAB"/> - <field name="KEYCODE_THUMBS_DOWN" since="29"/> - <field name="KEYCODE_THUMBS_UP" since="29"/> <field name="KEYCODE_TV" since="11"/> <field name="KEYCODE_TV_ANTENNA_CABLE" since="21"/> <field name="KEYCODE_TV_AUDIO_DESCRIPTION" since="21"/> @@ -49429,7 +47855,7 @@ <field name="KEYCODE_ZENKAKU_HANKAKU" since="16"/> <field name="KEYCODE_ZOOM_IN" since="11"/> <field name="KEYCODE_ZOOM_OUT" since="11"/> - <field name="MAX_KEYCODE" deprecated="15"/> + <field name="MAX_KEYCODE" deprecated="16"/> <field name="META_ALT_LEFT_ON"/> <field name="META_ALT_MASK" since="11"/> <field name="META_ALT_ON"/> @@ -49495,7 +47921,6 @@ <method name="<init>(Landroid/content/Context;)V"/> <method name="<init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V"/> <method name="cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater;"/> - <method name="createView(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" since="29"/> <method name="createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;"/> <method name="from(Landroid/content/Context;)Landroid/view/LayoutInflater;"/> <method name="getContext()Landroid/content/Context;"/> @@ -49506,7 +47931,6 @@ <method name="inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;"/> <method name="inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;)Landroid/view/View;"/> <method name="inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;"/> - <method name="onCreateView(Landroid/content/Context;Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" since="29"/> <method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" since="11"/> <method name="onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;"/> <method name="setFactory(Landroid/view/LayoutInflater$Factory;)V"/> @@ -49580,7 +48004,6 @@ <method name="getContentDescription()Ljava/lang/CharSequence;" since="26"/> <method name="getGroupId()I"/> <method name="getIcon()Landroid/graphics/drawable/Drawable;"/> - <method name="getIconTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getIconTintList()Landroid/content/res/ColorStateList;" since="26"/> <method name="getIconTintMode()Landroid/graphics/PorterDuff$Mode;" since="26"/> <method name="getIntent()Landroid/content/Intent;"/> @@ -49610,7 +48033,6 @@ <method name="setEnabled(Z)Landroid/view/MenuItem;"/> <method name="setIcon(I)Landroid/view/MenuItem;"/> <method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/MenuItem;"/> - <method name="setIconTintBlendMode(Landroid/graphics/BlendMode;)Landroid/view/MenuItem;" since="29"/> <method name="setIconTintList(Landroid/content/res/ColorStateList;)Landroid/view/MenuItem;" since="26"/> <method name="setIconTintMode(Landroid/graphics/PorterDuff$Mode;)Landroid/view/MenuItem;" since="26"/> <method name="setIntent(Landroid/content/Intent;)Landroid/view/MenuItem;"/> @@ -49646,6 +48068,7 @@ <extends name="android/view/InputEvent" since="9"/> <extends name="java/lang/Object" removed="9"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="actionToString(I)Ljava/lang/String;" since="19"/> <method name="addBatch(JFFFFI)V"/> <method name="addBatch(J[Landroid/view/MotionEvent$PointerCoords;I)V" since="9"/> @@ -49659,7 +48082,6 @@ <method name="getAxisValue(I)F" since="12"/> <method name="getAxisValue(II)F" since="12"/> <method name="getButtonState()I" since="14"/> - <method name="getClassification()I" since="29"/> <method name="getDeviceId()I"/> <method name="getDownTime()J"/> <method name="getEdgeFlags()I"/> @@ -49698,9 +48120,7 @@ <method name="getPressure()F"/> <method name="getPressure(I)F" since="5"/> <method name="getRawX()F"/> - <method name="getRawX(I)F" since="29"/> <method name="getRawY()F"/> - <method name="getRawY(I)F" since="29"/> <method name="getSize()F"/> <method name="getSize(I)F" since="5"/> <method name="getToolMajor()F" since="9"/> @@ -49721,8 +48141,8 @@ <method name="isButtonPressed(I)Z" since="21"/> <method name="obtain(JJIFFFFIFFII)Landroid/view/MotionEvent;"/> <method name="obtain(JJIFFI)Landroid/view/MotionEvent;"/> - <method name="obtain(JJIIFFFFIFFII)Landroid/view/MotionEvent;" since="5" deprecated="15"/> - <method name="obtain(JJII[I[Landroid/view/MotionEvent$PointerCoords;IFFIIII)Landroid/view/MotionEvent;" since="9" deprecated="15"/> + <method name="obtain(JJIIFFFFIFFII)Landroid/view/MotionEvent;" since="5" deprecated="16"/> + <method name="obtain(JJII[I[Landroid/view/MotionEvent$PointerCoords;IFFIIII)Landroid/view/MotionEvent;" since="9" deprecated="16"/> <method name="obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;" since="14"/> <method name="obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;"/> <method name="obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;" since="5"/> @@ -49743,15 +48163,15 @@ <field name="ACTION_MASK" since="5"/> <field name="ACTION_MOVE"/> <field name="ACTION_OUTSIDE" since="3"/> - <field name="ACTION_POINTER_1_DOWN" since="5" deprecated="15"/> - <field name="ACTION_POINTER_1_UP" since="5" deprecated="15"/> - <field name="ACTION_POINTER_2_DOWN" since="5" deprecated="15"/> - <field name="ACTION_POINTER_2_UP" since="5" deprecated="15"/> - <field name="ACTION_POINTER_3_DOWN" since="5" deprecated="15"/> - <field name="ACTION_POINTER_3_UP" since="5" deprecated="15"/> + <field name="ACTION_POINTER_1_DOWN" since="5" deprecated="16"/> + <field name="ACTION_POINTER_1_UP" since="5" deprecated="16"/> + <field name="ACTION_POINTER_2_DOWN" since="5" deprecated="16"/> + <field name="ACTION_POINTER_2_UP" since="5" deprecated="16"/> + <field name="ACTION_POINTER_3_DOWN" since="5" deprecated="16"/> + <field name="ACTION_POINTER_3_UP" since="5" deprecated="16"/> <field name="ACTION_POINTER_DOWN" since="5"/> - <field name="ACTION_POINTER_ID_MASK" since="5" deprecated="15"/> - <field name="ACTION_POINTER_ID_SHIFT" since="5" deprecated="15"/> + <field name="ACTION_POINTER_ID_MASK" since="5" deprecated="16"/> + <field name="ACTION_POINTER_ID_SHIFT" since="5" deprecated="16"/> <field name="ACTION_POINTER_INDEX_MASK" since="8"/> <field name="ACTION_POINTER_INDEX_SHIFT" since="8"/> <field name="ACTION_POINTER_UP" since="5"/> @@ -49809,16 +48229,12 @@ <field name="BUTTON_STYLUS_PRIMARY" since="23"/> <field name="BUTTON_STYLUS_SECONDARY" since="23"/> <field name="BUTTON_TERTIARY" since="14"/> - <field name="CLASSIFICATION_AMBIGUOUS_GESTURE" since="29"/> - <field name="CLASSIFICATION_DEEP_PRESS" since="29"/> - <field name="CLASSIFICATION_NONE" since="29"/> <field name="CREATOR"/> <field name="EDGE_BOTTOM"/> <field name="EDGE_LEFT"/> <field name="EDGE_RIGHT"/> <field name="EDGE_TOP"/> <field name="FLAG_WINDOW_IS_OBSCURED" since="9"/> - <field name="FLAG_WINDOW_IS_PARTIALLY_OBSCURED" since="29"/> <field name="INVALID_POINTER_ID" since="14"/> <field name="TOOL_TYPE_ERASER" since="14"/> <field name="TOOL_TYPE_FINGER" since="14"/> @@ -49866,15 +48282,16 @@ <class name="android/view/OrientationListener" since="1" deprecated="3"> <extends name="java/lang/Object"/> <implements name="android/hardware/SensorListener"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;I)V" since="3" deprecated="29"/> - <method name="disable()V" deprecated="29"/> - <method name="enable()V" deprecated="29"/> - <method name="onOrientationChanged(I)V" deprecated="29"/> - <field name="ORIENTATION_UNKNOWN" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;I)V" since="3"/> + <method name="disable()V"/> + <method name="enable()V"/> + <method name="onOrientationChanged(I)V"/> + <field name="ORIENTATION_UNKNOWN"/> </class> <class name="android/view/PixelCopy" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="request(Landroid/view/Surface;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V"/> <method name="request(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V" since="26"/> <method name="request(Landroid/view/SurfaceView;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V"/> @@ -49895,6 +48312,8 @@ <class name="android/view/PointerIcon" since="24"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="create(Landroid/graphics/Bitmap;FF)Landroid/view/PointerIcon;"/> <method name="getSystemIcon(Landroid/content/Context;I)Landroid/view/PointerIcon;"/> <method name="load(Landroid/content/res/Resources;I)Landroid/view/PointerIcon;"/> @@ -49963,6 +48382,7 @@ </class> <class name="android/view/SoundEffectConstants" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getContantForFocusDirection(I)I"/> <field name="CLICK"/> <field name="NAVIGATION_DOWN"/> @@ -49986,8 +48406,8 @@ <class name="android/view/Surface" since="1"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="14"/> <method name="<init>(Landroid/graphics/SurfaceTexture;)V" since="14"/> - <method name="<init>(Landroid/view/SurfaceControl;)V" since="29"/> <method name="freeze()V" removed="14"/> <method name="hide()V" removed="14"/> <method name="isValid()Z"/> @@ -50035,37 +48455,6 @@ <method name="<init>()V"/> <method name="<init>(Ljava/lang/String;)V"/> </class> - <class name="android/view/SurfaceControl" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="isValid()Z"/> - <method name="readFromParcel(Landroid/os/Parcel;)V"/> - <method name="release()V"/> - <field name="CREATOR"/> - </class> - <class name="android/view/SurfaceControl$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/view/SurfaceControl;"/> - <method name="setBufferSize(II)Landroid/view/SurfaceControl$Builder;"/> - <method name="setFormat(I)Landroid/view/SurfaceControl$Builder;"/> - <method name="setName(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder;"/> - <method name="setOpaque(Z)Landroid/view/SurfaceControl$Builder;"/> - <method name="setParent(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Builder;"/> - </class> - <class name="android/view/SurfaceControl$Transaction" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/io/Closeable"/> - <method name="<init>()V"/> - <method name="apply()V"/> - <method name="merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;"/> - <method name="reparent(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;"/> - <method name="setAlpha(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;"/> - <method name="setBufferSize(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;"/> - <method name="setGeometry(Landroid/view/SurfaceControl;Landroid/graphics/Rect;Landroid/graphics/Rect;I)Landroid/view/SurfaceControl$Transaction;"/> - <method name="setLayer(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;"/> - <method name="setVisibility(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;"/> - </class> <class name="android/view/SurfaceHolder" since="1"> <extends name="java/lang/Object"/> <method name="addCallback(Landroid/view/SurfaceHolder$Callback;)V"/> @@ -50080,12 +48469,12 @@ <method name="setFormat(I)V"/> <method name="setKeepScreenOn(Z)V"/> <method name="setSizeFromLayout()V"/> - <method name="setType(I)V" deprecated="15"/> + <method name="setType(I)V" deprecated="16"/> <method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V"/> - <field name="SURFACE_TYPE_GPU" deprecated="15"/> - <field name="SURFACE_TYPE_HARDWARE" deprecated="15"/> - <field name="SURFACE_TYPE_NORMAL" deprecated="15"/> - <field name="SURFACE_TYPE_PUSH_BUFFERS" deprecated="15"/> + <field name="SURFACE_TYPE_GPU" deprecated="16"/> + <field name="SURFACE_TYPE_HARDWARE" deprecated="16"/> + <field name="SURFACE_TYPE_NORMAL" deprecated="16"/> + <field name="SURFACE_TYPE_PUSH_BUFFERS" deprecated="16"/> </class> <class name="android/view/SurfaceHolder$BadSurfaceTypeException" since="1"> <extends name="java/lang/RuntimeException"/> @@ -50112,7 +48501,6 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> <method name="gatherTransparentRegion(Landroid/graphics/Region;)Z"/> <method name="getHolder()Landroid/view/SurfaceHolder;"/> - <method name="getSurfaceControl()Landroid/view/SurfaceControl;" since="29"/> <method name="setSecure(Z)V" since="17"/> <method name="setZOrderMediaOverlay(Z)V" since="5"/> <method name="setZOrderOnTop(Z)V" since="5"/> @@ -50148,9 +48536,7 @@ <class name="android/view/TouchDelegate" since="1"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/graphics/Rect;Landroid/view/View;)V"/> - <method name="getTouchDelegateInfo()Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo;" since="29"/> <method name="onTouchEvent(Landroid/view/MotionEvent;)Z"/> - <method name="onTouchExplorationHoverEvent(Landroid/view/MotionEvent;)Z" since="29"/> <field name="ABOVE"/> <field name="BELOW"/> <field name="TO_LEFT"/> @@ -50158,6 +48544,8 @@ </class> <class name="android/view/VelocityTracker" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="addMovement(Landroid/view/MotionEvent;)V"/> <method name="clear()V"/> <method name="computeCurrentVelocity(I)V"/> @@ -50274,7 +48662,6 @@ <method name="forceLayout()V"/> <method name="generateViewId()I" since="17"/> <method name="getAccessibilityClassName()Ljava/lang/CharSequence;" since="23"/> - <method name="getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;" since="29"/> <method name="getAccessibilityLiveRegion()I" since="19"/> <method name="getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;" since="16"/> <method name="getAccessibilityPaneTitle()Ljava/lang/CharSequence;" since="28"/> @@ -50282,16 +48669,12 @@ <method name="getAccessibilityTraversalBefore()I" since="22"/> <method name="getAlpha()F" since="11"/> <method name="getAnimation()Landroid/view/animation/Animation;"/> - <method name="getAnimationMatrix()Landroid/graphics/Matrix;" since="29"/> <method name="getApplicationWindowToken()Landroid/os/IBinder;"/> - <method name="getAttributeResolutionStack(I)[I" since="29"/> - <method name="getAttributeSourceResourceMap()Ljava/util/Map;" since="29"/> <method name="getAutofillHints()[Ljava/lang/String;" since="26"/> <method name="getAutofillId()Landroid/view/autofill/AutofillId;" since="26"/> <method name="getAutofillType()I" since="26"/> <method name="getAutofillValue()Landroid/view/autofill/AutofillValue;" since="26"/> <method name="getBackground()Landroid/graphics/drawable/Drawable;"/> - <method name="getBackgroundTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getBackgroundTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getBackgroundTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="getBaseline()I"/> @@ -50302,7 +48685,6 @@ <method name="getClipBounds()Landroid/graphics/Rect;" since="18"/> <method name="getClipBounds(Landroid/graphics/Rect;)Z" since="23"/> <method name="getClipToOutline()Z" since="21"/> - <method name="getContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession;" since="29"/> <method name="getContentDescription()Ljava/lang/CharSequence;" since="4"/> <method name="getContext()Landroid/content/Context;"/> <method name="getContextMenuInfo()Landroid/view/ContextMenu$ContextMenuInfo;"/> @@ -50317,7 +48699,6 @@ <method name="getDrawingRect(Landroid/graphics/Rect;)V"/> <method name="getDrawingTime()J"/> <method name="getElevation()F" since="21"/> - <method name="getExplicitStyle()I" since="29"/> <method name="getFilterTouchesWhenObscured()Z" since="9"/> <method name="getFitsSystemWindows()Z" since="16"/> <method name="getFocusable()I" since="26"/> @@ -50325,7 +48706,6 @@ <method name="getFocusedRect(Landroid/graphics/Rect;)V"/> <method name="getForeground()Landroid/graphics/drawable/Drawable;" since="23"/> <method name="getForegroundGravity()I" since="23"/> - <method name="getForegroundTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getForegroundTintList()Landroid/content/res/ColorStateList;" since="23"/> <method name="getForegroundTintMode()Landroid/graphics/PorterDuff$Mode;" since="23"/> <method name="getGlobalVisibleRect(Landroid/graphics/Rect;)Z"/> @@ -50336,8 +48716,6 @@ <method name="getHitRect(Landroid/graphics/Rect;)V"/> <method name="getHorizontalFadingEdgeLength()I"/> <method name="getHorizontalScrollbarHeight()I"/> - <method name="getHorizontalScrollbarThumbDrawable()Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getHorizontalScrollbarTrackDrawable()Landroid/graphics/drawable/Drawable;" since="29"/> <method name="getId()I"/> <method name="getImportantForAccessibility()I" since="16"/> <method name="getImportantForAutofill()I" since="26"/> @@ -50351,7 +48729,6 @@ <method name="getLeftFadingEdgeStrength()F"/> <method name="getLeftPaddingOffset()I" since="2"/> <method name="getLocalVisibleRect(Landroid/graphics/Rect;)Z"/> - <method name="getLocationInSurface([I)V" since="29"/> <method name="getLocationInWindow([I)V"/> <method name="getLocationOnScreen([I)V"/> <method name="getMatrix()Landroid/graphics/Matrix;" since="11"/> @@ -50405,11 +48782,9 @@ <method name="getScrollX()I"/> <method name="getScrollY()I"/> <method name="getSolidColor()I"/> - <method name="getSourceLayoutResId()I" since="29"/> <method name="getStateListAnimator()Landroid/animation/StateListAnimator;" since="21"/> <method name="getSuggestedMinimumHeight()I"/> <method name="getSuggestedMinimumWidth()I"/> - <method name="getSystemGestureExclusionRects()Ljava/util/List;" since="29"/> <method name="getSystemUiVisibility()I" since="11"/> <method name="getTag()Ljava/lang/Object;"/> <method name="getTag(I)Ljava/lang/Object;" since="4"/> @@ -50421,16 +48796,12 @@ <method name="getTopPaddingOffset()I" since="2"/> <method name="getTouchDelegate()Landroid/view/TouchDelegate;"/> <method name="getTouchables()Ljava/util/ArrayList;"/> - <method name="getTransitionAlpha()F" since="29"/> <method name="getTransitionName()Ljava/lang/String;" since="21"/> <method name="getTranslationX()F" since="11"/> <method name="getTranslationY()F" since="11"/> <method name="getTranslationZ()F" since="21"/> - <method name="getUniqueDrawingId()J" since="29"/> <method name="getVerticalFadingEdgeLength()I"/> <method name="getVerticalScrollbarPosition()I" since="11"/> - <method name="getVerticalScrollbarThumbDrawable()Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getVerticalScrollbarTrackDrawable()Landroid/graphics/drawable/Drawable;" since="29"/> <method name="getVerticalScrollbarWidth()I"/> <method name="getViewTreeObserver()Landroid/view/ViewTreeObserver;"/> <method name="getVisibility()I"/> @@ -50474,7 +48845,6 @@ <method name="isFocusableInTouchMode()Z"/> <method name="isFocused()Z"/> <method name="isFocusedByDefault()Z" since="26"/> - <method name="isForceDarkAllowed()Z" since="29"/> <method name="isHapticFeedbackEnabled()Z" since="3"/> <method name="isHardwareAccelerated()Z" since="11"/> <method name="isHorizontalFadingEdgeEnabled()Z"/> @@ -50613,7 +48983,6 @@ <method name="resolveSizeAndState(III)I" since="11"/> <method name="restoreDefaultFocus()Z" since="26"/> <method name="restoreHierarchyState(Landroid/util/SparseArray;)V"/> - <method name="saveAttributeDataForStyleable(Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V" since="29"/> <method name="saveHierarchyState(Landroid/util/SparseArray;)V"/> <method name="scrollBy(II)V"/> <method name="scrollTo(II)V"/> @@ -50626,14 +48995,12 @@ <method name="setActivated(Z)V" since="11"/> <method name="setAlpha(F)V" since="11"/> <method name="setAnimation(Landroid/view/animation/Animation;)V"/> - <method name="setAnimationMatrix(Landroid/graphics/Matrix;)V" since="29"/> <method name="setAutofillHints([Ljava/lang/String;)V" since="26"/> <method name="setAutofillId(Landroid/view/autofill/AutofillId;)V" since="28"/> <method name="setBackground(Landroid/graphics/drawable/Drawable;)V" since="16"/> <method name="setBackgroundColor(I)V"/> <method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" deprecated="16"/> <method name="setBackgroundResource(I)V"/> - <method name="setBackgroundTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setBackgroundTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setBackgroundTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setBottom(I)V" since="11"/> @@ -50641,7 +49008,6 @@ <method name="setClickable(Z)V"/> <method name="setClipBounds(Landroid/graphics/Rect;)V" since="18"/> <method name="setClipToOutline(Z)V" since="21"/> - <method name="setContentCaptureSession(Landroid/view/contentcapture/ContentCaptureSession;)V" since="29"/> <method name="setContentDescription(Ljava/lang/CharSequence;)V" since="4"/> <method name="setContextClickable(Z)V" since="23"/> <method name="setDefaultFocusHighlightEnabled(Z)V" since="26"/> @@ -50658,18 +49024,14 @@ <method name="setFocusable(Z)V"/> <method name="setFocusableInTouchMode(Z)V"/> <method name="setFocusedByDefault(Z)V" since="26"/> - <method name="setForceDarkAllowed(Z)V" since="29"/> <method name="setForeground(Landroid/graphics/drawable/Drawable;)V" since="23"/> <method name="setForegroundGravity(I)V" since="23"/> - <method name="setForegroundTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setForegroundTintList(Landroid/content/res/ColorStateList;)V" since="23"/> <method name="setForegroundTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="23"/> <method name="setHapticFeedbackEnabled(Z)V" since="3"/> <method name="setHasTransientState(Z)V" since="16"/> <method name="setHorizontalFadingEdgeEnabled(Z)V"/> <method name="setHorizontalScrollBarEnabled(Z)V"/> - <method name="setHorizontalScrollbarThumbDrawable(Landroid/graphics/drawable/Drawable;)V" since="29"/> - <method name="setHorizontalScrollbarTrackDrawable(Landroid/graphics/drawable/Drawable;)V" since="29"/> <method name="setHovered(Z)V" since="14"/> <method name="setId(I)V"/> <method name="setImportantForAccessibility(I)V" since="16"/> @@ -50682,7 +49044,6 @@ <method name="setLayoutDirection(I)V" since="17"/> <method name="setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V"/> <method name="setLeft(I)V" since="11"/> - <method name="setLeftTopRightBottom(IIII)V" since="29"/> <method name="setLongClickable(Z)V"/> <method name="setMeasuredDimension(II)V"/> <method name="setMinimumHeight(I)V"/> @@ -50741,7 +49102,6 @@ <method name="setSelected(Z)V"/> <method name="setSoundEffectsEnabled(Z)V"/> <method name="setStateListAnimator(Landroid/animation/StateListAnimator;)V" since="21"/> - <method name="setSystemGestureExclusionRects(Ljava/util/List;)V" since="29"/> <method name="setSystemUiVisibility(I)V" since="11"/> <method name="setTag(ILjava/lang/Object;)V" since="4"/> <method name="setTag(Ljava/lang/Object;)V"/> @@ -50750,17 +49110,13 @@ <method name="setTooltipText(Ljava/lang/CharSequence;)V" since="26"/> <method name="setTop(I)V" since="11"/> <method name="setTouchDelegate(Landroid/view/TouchDelegate;)V"/> - <method name="setTransitionAlpha(F)V" since="29"/> <method name="setTransitionName(Ljava/lang/String;)V" since="21"/> - <method name="setTransitionVisibility(I)V" since="29"/> <method name="setTranslationX(F)V" since="11"/> <method name="setTranslationY(F)V" since="11"/> <method name="setTranslationZ(F)V" since="21"/> <method name="setVerticalFadingEdgeEnabled(Z)V"/> <method name="setVerticalScrollBarEnabled(Z)V"/> <method name="setVerticalScrollbarPosition(I)V" since="11"/> - <method name="setVerticalScrollbarThumbDrawable(Landroid/graphics/drawable/Drawable;)V" since="29"/> - <method name="setVerticalScrollbarTrackDrawable(Landroid/graphics/drawable/Drawable;)V" since="29"/> <method name="setVisibility(I)V"/> <method name="setWillNotCacheDrawing(Z)V" deprecated="28"/> <method name="setWillNotDraw(Z)V"/> @@ -50776,8 +49132,6 @@ <method name="startDragAndDrop(Landroid/content/ClipData;Landroid/view/View$DragShadowBuilder;Ljava/lang/Object;I)Z" since="24"/> <method name="startNestedScroll(I)Z" since="21"/> <method name="stopNestedScroll()V" since="21"/> - <method name="transformMatrixToGlobal(Landroid/graphics/Matrix;)V" since="29"/> - <method name="transformMatrixToLocal(Landroid/graphics/Matrix;)V" since="29"/> <method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V"/> <method name="updateDragShadow(Landroid/view/View$DragShadowBuilder;)V" since="24"/> <method name="verifyDrawable(Landroid/graphics/drawable/Drawable;)Z"/> @@ -50911,8 +49265,8 @@ <field name="SELECTED_STATE_SET"/> <field name="SELECTED_WINDOW_FOCUSED_STATE_SET"/> <field name="SOUND_EFFECTS_ENABLED"/> - <field name="STATUS_BAR_HIDDEN" since="11" deprecated="15"/> - <field name="STATUS_BAR_VISIBLE" since="11" deprecated="15"/> + <field name="STATUS_BAR_HIDDEN" since="11" deprecated="16"/> + <field name="STATUS_BAR_VISIBLE" since="11" deprecated="16"/> <field name="SYSTEM_UI_FLAG_FULLSCREEN" since="16"/> <field name="SYSTEM_UI_FLAG_HIDE_NAVIGATION" since="14"/> <field name="SYSTEM_UI_FLAG_IMMERSIVE" since="19"/> @@ -51062,25 +49416,25 @@ </class> <class name="android/view/ViewAnimationUtils" since="21"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createCircularReveal(Landroid/view/View;IIFF)Landroid/animation/Animator;"/> </class> <class name="android/view/ViewConfiguration" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="15"/> + <method name="<init>()V" deprecated="16"/> <method name="get(Landroid/content/Context;)Landroid/view/ViewConfiguration;" since="3"/> - <method name="getAmbiguousGestureMultiplier()F" since="29"/> <method name="getDefaultActionModeHideDuration()J" since="23"/> <method name="getDoubleTapTimeout()I" since="3"/> - <method name="getEdgeSlop()I" deprecated="15"/> - <method name="getFadingEdgeLength()I" deprecated="15"/> + <method name="getEdgeSlop()I" deprecated="16"/> + <method name="getFadingEdgeLength()I" deprecated="16"/> <method name="getGlobalActionKeyTimeout()J" deprecated="20"/> <method name="getJumpTapTimeout()I"/> <method name="getKeyRepeatDelay()I" since="12"/> <method name="getKeyRepeatTimeout()I" since="12"/> <method name="getLongPressTimeout()I"/> - <method name="getMaximumDrawingCacheSize()I" deprecated="15"/> - <method name="getMaximumFlingVelocity()I" since="4" deprecated="15"/> - <method name="getMinimumFlingVelocity()I" deprecated="15"/> + <method name="getMaximumDrawingCacheSize()I" deprecated="16"/> + <method name="getMaximumFlingVelocity()I" since="4" deprecated="16"/> + <method name="getMinimumFlingVelocity()I" deprecated="16"/> <method name="getPressedStateDuration()I"/> <method name="getScaledDoubleTapSlop()I" since="3"/> <method name="getScaledEdgeSlop()I" since="3"/> @@ -51090,7 +49444,6 @@ <method name="getScaledMaximumDrawingCacheSize()I" since="3"/> <method name="getScaledMaximumFlingVelocity()I" since="4"/> <method name="getScaledMinimumFlingVelocity()I" since="3"/> - <method name="getScaledMinimumScalingSpan()I" since="29"/> <method name="getScaledOverflingDistance()I" since="9"/> <method name="getScaledOverscrollDistance()I" since="9"/> <method name="getScaledPagingTouchSlop()I" since="8"/> @@ -51099,12 +49452,12 @@ <method name="getScaledVerticalScrollFactor()F" since="26"/> <method name="getScaledWindowTouchSlop()I" since="3"/> <method name="getScrollBarFadeDuration()I" since="5"/> - <method name="getScrollBarSize()I" deprecated="15"/> + <method name="getScrollBarSize()I" deprecated="16"/> <method name="getScrollDefaultDelay()I" since="5"/> <method name="getScrollFriction()F"/> <method name="getTapTimeout()I"/> - <method name="getTouchSlop()I" deprecated="15"/> - <method name="getWindowTouchSlop()I" deprecated="15"/> + <method name="getTouchSlop()I" deprecated="16"/> + <method name="getWindowTouchSlop()I" deprecated="16"/> <method name="getZoomControlsTimeout()J"/> <method name="hasPermanentMenuKey()Z" since="14"/> <method name="shouldShowMenuShortcutsWhenKeyboardPresent()Z" since="28"/> @@ -51152,14 +49505,14 @@ <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/view/ViewDebug$HierarchyTraceType;"/> <method name="values()[Landroid/view/ViewDebug$HierarchyTraceType;"/> - <field name="BUILD_CACHE" deprecated="29"/> - <field name="DRAW" deprecated="29"/> - <field name="INVALIDATE" deprecated="29"/> - <field name="INVALIDATE_CHILD" deprecated="29"/> - <field name="INVALIDATE_CHILD_IN_PARENT" deprecated="29"/> - <field name="ON_LAYOUT" deprecated="29"/> - <field name="ON_MEASURE" deprecated="29"/> - <field name="REQUEST_LAYOUT" deprecated="29"/> + <field name="BUILD_CACHE"/> + <field name="DRAW"/> + <field name="INVALIDATE"/> + <field name="INVALIDATE_CHILD"/> + <field name="INVALIDATE_CHILD_IN_PARENT"/> + <field name="ON_LAYOUT"/> + <field name="ON_MEASURE"/> + <field name="REQUEST_LAYOUT"/> </class> <class name="android/view/ViewDebug$IntToString" since="1"> <extends name="java/lang/Object"/> @@ -51171,13 +49524,13 @@ <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/view/ViewDebug$RecyclerTraceType;"/> <method name="values()[Landroid/view/ViewDebug$RecyclerTraceType;"/> - <field name="BIND_VIEW" deprecated="29"/> - <field name="MOVE_FROM_ACTIVE_TO_SCRAP_HEAP" deprecated="29"/> + <field name="BIND_VIEW"/> + <field name="MOVE_FROM_ACTIVE_TO_SCRAP_HEAP"/> <field name="MOVE_TO_ACTIVE_HEAP" removed="8"/> - <field name="MOVE_TO_SCRAP_HEAP" deprecated="29"/> - <field name="NEW_VIEW" deprecated="29"/> - <field name="RECYCLE_FROM_ACTIVE_HEAP" deprecated="29"/> - <field name="RECYCLE_FROM_SCRAP_HEAP" deprecated="29"/> + <field name="MOVE_TO_SCRAP_HEAP"/> + <field name="NEW_VIEW"/> + <field name="RECYCLE_FROM_ACTIVE_HEAP"/> + <field name="RECYCLE_FROM_SCRAP_HEAP"/> </class> <class name="android/view/ViewGroup" since="1"> <extends name="android/view/View"/> @@ -51215,7 +49568,6 @@ <method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;"/> <method name="getChildAt(I)Landroid/view/View;"/> <method name="getChildCount()I"/> - <method name="getChildDrawingOrder(I)I" since="29"/> <method name="getChildDrawingOrder(II)I"/> <method name="getChildMeasureSpec(III)I"/> <method name="getChildStaticTransformation(Landroid/view/View;Landroid/view/animation/Transformation;)Z"/> @@ -51236,7 +49588,6 @@ <method name="isAnimationCacheEnabled()Z" deprecated="23"/> <method name="isChildrenDrawingOrderEnabled()Z" since="7"/> <method name="isChildrenDrawnWithCacheEnabled()Z" deprecated="23"/> - <method name="isLayoutSuppressed()Z" since="29"/> <method name="isMotionEventSplittingEnabled()Z" since="11"/> <method name="isTransitionGroup()Z" since="21"/> <method name="measureChild(Landroid/view/View;II)V"/> @@ -51283,7 +49634,6 @@ <method name="shouldDelayChildPressedState()Z" since="14"/> <method name="startLayoutAnimation()V"/> <method name="startViewTransition(Landroid/view/View;)V" since="11"/> - <method name="suppressLayout(Z)V" since="29"/> <field name="CLIP_TO_PADDING_MASK"/> <field name="FLAG_USE_CHILD_DRAWING_ORDER" removed="7"/> <field name="FOCUS_AFTER_DESCENDANTS"/> @@ -51303,7 +49653,7 @@ <method name="<init>(Landroid/view/ViewGroup$LayoutParams;)V"/> <method name="resolveLayoutDirection(I)V" since="17"/> <method name="setBaseAttributes(Landroid/content/res/TypedArray;II)V"/> - <field name="FILL_PARENT" deprecated="15"/> + <field name="FILL_PARENT" deprecated="16"/> <field name="MATCH_PARENT" since="8"/> <field name="WRAP_CONTENT"/> <field name="height"/> @@ -51336,6 +49686,8 @@ </class> <class name="android/view/ViewGroupOverlay" since="18"> <extends name="android/view/ViewOverlay"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/view/View;)V" since="29"/> <method name="add(Landroid/view/View;)V"/> <method name="remove(Landroid/view/View;)V"/> </class> @@ -51355,6 +49707,8 @@ </class> <class name="android/view/ViewOverlay" since="18"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;Landroid/view/View;)V" since="29"/> <method name="add(Landroid/graphics/drawable/Drawable;)V"/> <method name="clear()V"/> <method name="remove(Landroid/graphics/drawable/Drawable;)V"/> @@ -51409,6 +49763,8 @@ </class> <class name="android/view/ViewPropertyAnimator" since="12"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/view/View;)V" since="29"/> <method name="alpha(F)Landroid/view/ViewPropertyAnimator;"/> <method name="alphaBy(F)Landroid/view/ViewPropertyAnimator;"/> <method name="cancel()V" since="14"/> @@ -51540,12 +49896,13 @@ </class> <class name="android/view/ViewTreeObserver" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V" since="16"/> <method name="addOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V"/> <method name="addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V"/> <method name="addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V"/> <method name="addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V" since="3"/> - <method name="addOnSystemGestureExclusionRectsChangedListener(Ljava/util/function/Consumer;)V" since="29"/> <method name="addOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V"/> <method name="addOnWindowAttachListener(Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V" since="18"/> <method name="addOnWindowFocusChangeListener(Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V" since="18"/> @@ -51553,18 +49910,15 @@ <method name="dispatchOnGlobalLayout()V"/> <method name="dispatchOnPreDraw()Z"/> <method name="isAlive()Z"/> - <method name="registerFrameCommitCallback(Ljava/lang/Runnable;)V" since="29"/> <method name="removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" deprecated="16"/> <method name="removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V" since="16"/> <method name="removeOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V"/> <method name="removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" since="16"/> <method name="removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V"/> <method name="removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V" since="3"/> - <method name="removeOnSystemGestureExclusionRectsChangedListener(Ljava/util/function/Consumer;)V" since="29"/> <method name="removeOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V"/> <method name="removeOnWindowAttachListener(Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V" since="18"/> <method name="removeOnWindowFocusChangeListener(Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V" since="18"/> - <method name="unregisterFrameCommitCallback(Ljava/lang/Runnable;)Z" since="29"/> </class> <class name="android/view/ViewTreeObserver$OnDrawListener" since="16"> <extends name="java/lang/Object"/> @@ -51637,7 +49991,6 @@ <method name="getSharedElementReturnTransition()Landroid/transition/Transition;" since="21"/> <method name="getSharedElementsUseOverlay()Z" since="21"/> <method name="getStatusBarColor()I" since="21"/> - <method name="getSystemGestureExclusionRects()Ljava/util/List;" since="29"/> <method name="getTransitionBackgroundFadeDuration()J" since="21"/> <method name="getTransitionManager()Landroid/transition/TransitionManager;" since="21"/> <method name="getVolumeControlStream()I"/> @@ -51650,9 +50003,7 @@ <method name="invalidatePanelMenu(I)V" since="11"/> <method name="isActive()Z"/> <method name="isFloating()Z"/> - <method name="isNavigationBarContrastEnforced()Z" since="29"/> <method name="isShortcutKey(ILandroid/view/KeyEvent;)Z"/> - <method name="isStatusBarContrastEnforced()Z" since="29"/> <method name="isWideColorGamut()Z" since="27"/> <method name="makeActive()V"/> <method name="onActive()V"/> @@ -51701,7 +50052,6 @@ <method name="setLogo(I)V" since="19"/> <method name="setMediaController(Landroid/media/session/MediaController;)V" since="21"/> <method name="setNavigationBarColor(I)V" since="21"/> - <method name="setNavigationBarContrastEnforced(Z)V" since="29"/> <method name="setNavigationBarDividerColor(I)V" since="28"/> <method name="setReenterTransition(Landroid/transition/Transition;)V" since="21"/> <method name="setResizingCaptionDrawable(Landroid/graphics/drawable/Drawable;)V" since="24"/> @@ -51714,9 +50064,7 @@ <method name="setSharedElementsUseOverlay(Z)V" since="21"/> <method name="setSoftInputMode(I)V" since="3"/> <method name="setStatusBarColor(I)V" since="21"/> - <method name="setStatusBarContrastEnforced(Z)V" since="29"/> <method name="setSustainedPerformanceMode(Z)V" since="24"/> - <method name="setSystemGestureExclusionRects(Ljava/util/List;)V" since="29"/> <method name="setTitle(Ljava/lang/CharSequence;)V"/> <method name="setTitleColor(I)V" deprecated="21"/> <method name="setTransitionBackgroundFadeDuration(J)V" since="21"/> @@ -51806,11 +50154,13 @@ <class name="android/view/WindowAnimationFrameStats" since="21"> <extends name="android/view/FrameStats"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> </class> <class name="android/view/WindowContentFrameStats" since="21"> <extends name="android/view/FrameStats"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getFramePostedTimeNano(I)J"/> <method name="getFrameReadyTimeNano(I)J"/> <field name="CREATOR"/> @@ -51818,6 +50168,8 @@ <class name="android/view/WindowId" since="18"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/IBinder;)V" since="29"/> <method name="isFocused()Z"/> <method name="registerFocusObserver(Landroid/view/WindowId$FocusObserver;)V"/> <method name="unregisterFocusObserver(Landroid/view/WindowId$FocusObserver;)V"/> @@ -51836,39 +50188,21 @@ <method name="consumeStableInsets()Landroid/view/WindowInsets;" since="21"/> <method name="consumeSystemWindowInsets()Landroid/view/WindowInsets;"/> <method name="getDisplayCutout()Landroid/view/DisplayCutout;" since="28"/> - <method name="getMandatorySystemGestureInsets()Landroid/graphics/Insets;" since="29"/> <method name="getStableInsetBottom()I" since="21"/> <method name="getStableInsetLeft()I" since="21"/> <method name="getStableInsetRight()I" since="21"/> <method name="getStableInsetTop()I" since="21"/> - <method name="getStableInsets()Landroid/graphics/Insets;" since="29"/> - <method name="getSystemGestureInsets()Landroid/graphics/Insets;" since="29"/> <method name="getSystemWindowInsetBottom()I"/> <method name="getSystemWindowInsetLeft()I"/> <method name="getSystemWindowInsetRight()I"/> <method name="getSystemWindowInsetTop()I"/> - <method name="getSystemWindowInsets()Landroid/graphics/Insets;" since="29"/> - <method name="getTappableElementInsets()Landroid/graphics/Insets;" since="29"/> <method name="hasInsets()Z"/> <method name="hasStableInsets()Z" since="21"/> <method name="hasSystemWindowInsets()Z"/> - <method name="inset(IIII)Landroid/view/WindowInsets;" since="29"/> <method name="isConsumed()Z" since="21"/> <method name="isRound()Z"/> - <method name="replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets;" deprecated="29"/> - <method name="replaceSystemWindowInsets(Landroid/graphics/Rect;)Landroid/view/WindowInsets;" since="21" deprecated="29"/> - </class> - <class name="android/view/WindowInsets$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="<init>(Landroid/view/WindowInsets;)V"/> - <method name="build()Landroid/view/WindowInsets;"/> - <method name="setDisplayCutout(Landroid/view/DisplayCutout;)Landroid/view/WindowInsets$Builder;"/> - <method name="setMandatorySystemGestureInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;"/> - <method name="setStableInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;"/> - <method name="setSystemGestureInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;"/> - <method name="setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;"/> - <method name="setTappableElementInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;"/> + <method name="replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets;"/> + <method name="replaceSystemWindowInsets(Landroid/graphics/Rect;)Landroid/view/WindowInsets;" since="21"/> </class> <class name="android/view/WindowManager" since="1"> <extends name="java/lang/Object"/> @@ -51916,7 +50250,7 @@ <field name="FLAGS_CHANGED"/> <field name="FLAG_ALLOW_LOCK_WHILE_SCREEN_ON" since="8"/> <field name="FLAG_ALT_FOCUSABLE_IM" since="3"/> - <field name="FLAG_BLUR_BEHIND" deprecated="15"/> + <field name="FLAG_BLUR_BEHIND" deprecated="16"/> <field name="FLAG_DIM_BEHIND"/> <field name="FLAG_DISMISS_KEYGUARD" since="5" deprecated="26"/> <field name="FLAG_DITHER" deprecated="17"/> @@ -51954,10 +50288,10 @@ <field name="LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER" since="28"/> <field name="LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES" since="28"/> <field name="MEMORY_TYPE_CHANGED"/> - <field name="MEMORY_TYPE_GPU" deprecated="15"/> - <field name="MEMORY_TYPE_HARDWARE" deprecated="15"/> - <field name="MEMORY_TYPE_NORMAL" deprecated="15"/> - <field name="MEMORY_TYPE_PUSH_BUFFERS" deprecated="15"/> + <field name="MEMORY_TYPE_GPU" deprecated="16"/> + <field name="MEMORY_TYPE_HARDWARE" deprecated="16"/> + <field name="MEMORY_TYPE_NORMAL" deprecated="16"/> + <field name="MEMORY_TYPE_PUSH_BUFFERS" deprecated="16"/> <field name="ROTATION_ANIMATION_CHANGED" since="18"/> <field name="ROTATION_ANIMATION_CROSSFADE" since="18"/> <field name="ROTATION_ANIMATION_JUMPCUT" since="18"/> @@ -52016,7 +50350,7 @@ <field name="horizontalMargin"/> <field name="horizontalWeight"/> <field name="layoutInDisplayCutoutMode" since="28"/> - <field name="memoryType" deprecated="15"/> + <field name="memoryType" deprecated="16"/> <field name="packageName"/> <field name="preferredDisplayModeId" since="23"/> <field name="preferredRefreshRate" since="21" deprecated="23"/> @@ -52037,6 +50371,7 @@ <extends name="android/view/accessibility/AccessibilityRecord" since="14"/> <extends name="java/lang/Object" removed="14"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="appendRecord(Landroid/view/accessibility/AccessibilityRecord;)V" since="14"/> <method name="eventTypeToString(I)Ljava/lang/String;" since="14"/> <method name="getAction()I" since="16"/> @@ -52095,7 +50430,7 @@ <field name="CONTENT_CHANGE_TYPE_UNDEFINED" since="19"/> <field name="CREATOR"/> <field name="INVALID_POSITION"/> - <field name="MAX_TEXT_LENGTH" deprecated="15"/> + <field name="MAX_TEXT_LENGTH" deprecated="16"/> <field name="TYPES_ALL_MASK"/> <field name="TYPE_ANNOUNCEMENT" since="16"/> <field name="TYPE_ASSIST_READING_CONTEXT" since="23"/> @@ -52141,15 +50476,15 @@ </class> <class name="android/view/accessibility/AccessibilityManager" since="4"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addAccessibilityRequestPreparer(Landroid/view/accessibility/AccessibilityRequestPreparer;)V" since="27"/> <method name="addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z" since="14"/> <method name="addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;Landroid/os/Handler;)V" since="26"/> <method name="addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z" since="19"/> <method name="addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;Landroid/os/Handler;)V" since="26"/> - <method name="getAccessibilityServiceList()Ljava/util/List;" deprecated="15"/> + <method name="getAccessibilityServiceList()Ljava/util/List;" deprecated="16"/> <method name="getEnabledAccessibilityServiceList(I)Ljava/util/List;" since="14"/> <method name="getInstalledAccessibilityServiceList()Ljava/util/List;" since="14"/> - <method name="getRecommendedTimeoutMillis(II)I" since="29"/> <method name="interrupt()V"/> <method name="isAccessibilityButtonSupported()Z" since="27"/> <method name="isEnabled()Z"/> @@ -52158,9 +50493,6 @@ <method name="removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z" since="14"/> <method name="removeTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z" since="19"/> <method name="sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V"/> - <field name="FLAG_CONTENT_CONTROLS" since="29"/> - <field name="FLAG_CONTENT_ICONS" since="29"/> - <field name="FLAG_CONTENT_TEXT" since="29"/> </class> <class name="android/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener" since="14"> <extends name="java/lang/Object"/> @@ -52173,6 +50505,7 @@ <class name="android/view/accessibility/AccessibilityNodeInfo" since="14"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="addAction(I)V" deprecated="21"/> <method name="addAction(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)V" since="21"/> <method name="addChild(Landroid/view/View;)V"/> @@ -52185,7 +50518,7 @@ <method name="getActionList()Ljava/util/List;" since="21"/> <method name="getActions()I" deprecated="21"/> <method name="getAvailableExtraData()Ljava/util/List;" since="26"/> - <method name="getBoundsInParent(Landroid/graphics/Rect;)V" deprecated="29"/> + <method name="getBoundsInParent(Landroid/graphics/Rect;)V"/> <method name="getBoundsInScreen(Landroid/graphics/Rect;)V"/> <method name="getChild(I)Landroid/view/accessibility/AccessibilityNodeInfo;"/> <method name="getChildCount()I"/> @@ -52211,7 +50544,6 @@ <method name="getTextSelectionEnd()I" since="18"/> <method name="getTextSelectionStart()I" since="18"/> <method name="getTooltipText()Ljava/lang/CharSequence;" since="28"/> - <method name="getTouchDelegateInfo()Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo;" since="29"/> <method name="getTraversalAfter()Landroid/view/accessibility/AccessibilityNodeInfo;" since="22"/> <method name="getTraversalBefore()Landroid/view/accessibility/AccessibilityNodeInfo;" since="22"/> <method name="getViewIdResourceName()Ljava/lang/String;" since="18"/> @@ -52237,7 +50569,6 @@ <method name="isScrollable()Z"/> <method name="isSelected()Z"/> <method name="isShowingHintText()Z" since="26"/> - <method name="isTextEntryKey()Z" since="29"/> <method name="isVisibleToUser()Z" since="16"/> <method name="obtain()Landroid/view/accessibility/AccessibilityNodeInfo;"/> <method name="obtain(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;"/> @@ -52254,7 +50585,7 @@ <method name="removeChild(Landroid/view/View;I)Z" since="21"/> <method name="setAccessibilityFocused(Z)V" since="16"/> <method name="setAvailableExtraData(Ljava/util/List;)V" since="26"/> - <method name="setBoundsInParent(Landroid/graphics/Rect;)V" deprecated="29"/> + <method name="setBoundsInParent(Landroid/graphics/Rect;)V"/> <method name="setBoundsInScreen(Landroid/graphics/Rect;)V"/> <method name="setCanOpenPopup(Z)V" since="19"/> <method name="setCheckable(Z)V"/> @@ -52299,10 +50630,8 @@ <method name="setSource(Landroid/view/View;)V"/> <method name="setSource(Landroid/view/View;I)V" since="16"/> <method name="setText(Ljava/lang/CharSequence;)V"/> - <method name="setTextEntryKey(Z)V" since="29"/> <method name="setTextSelection(II)V" since="18"/> <method name="setTooltipText(Ljava/lang/CharSequence;)V" since="28"/> - <method name="setTouchDelegateInfo(Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo;)V" since="29"/> <method name="setTraversalAfter(Landroid/view/View;)V" since="22"/> <method name="setTraversalAfter(Landroid/view/View;I)V" since="22"/> <method name="setTraversalBefore(Landroid/view/View;)V" since="22"/> @@ -52376,10 +50705,6 @@ <field name="ACTION_MOVE_WINDOW" since="26"/> <field name="ACTION_NEXT_AT_MOVEMENT_GRANULARITY"/> <field name="ACTION_NEXT_HTML_ELEMENT"/> - <field name="ACTION_PAGE_DOWN" since="29"/> - <field name="ACTION_PAGE_LEFT" since="29"/> - <field name="ACTION_PAGE_RIGHT" since="29"/> - <field name="ACTION_PAGE_UP" since="29"/> <field name="ACTION_PASTE"/> <field name="ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY"/> <field name="ACTION_PREVIOUS_HTML_ELEMENT"/> @@ -52399,6 +50724,8 @@ </class> <class name="android/view/accessibility/AccessibilityNodeInfo$CollectionInfo" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIZI)V" since="29"/> <method name="getColumnCount()I"/> <method name="getRowCount()I"/> <method name="getSelectionMode()I" since="21"/> @@ -52411,6 +50738,8 @@ </class> <class name="android/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIIIZZ)V" since="29"/> <method name="getColumnIndex()I"/> <method name="getColumnSpan()I"/> <method name="getRowIndex()I"/> @@ -52422,6 +50751,8 @@ </class> <class name="android/view/accessibility/AccessibilityNodeInfo$RangeInfo" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IFFF)V" since="29"/> <method name="getCurrent()F"/> <method name="getMax()F"/> <method name="getMin()F"/> @@ -52431,15 +50762,6 @@ <field name="RANGE_TYPE_INT"/> <field name="RANGE_TYPE_PERCENT"/> </class> - <class name="android/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Ljava/util/Map;)V"/> - <method name="getRegionAt(I)Landroid/graphics/Region;"/> - <method name="getRegionCount()I"/> - <method name="getTargetForRegion(Landroid/graphics/Region;)Landroid/view/accessibility/AccessibilityNodeInfo;"/> - <field name="CREATOR"/> - </class> <class name="android/view/accessibility/AccessibilityNodeProvider" since="16"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -52452,6 +50774,7 @@ </class> <class name="android/view/accessibility/AccessibilityRecord" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAddedCount()I"/> <method name="getBeforeText()Ljava/lang/CharSequence;"/> <method name="getClassName()Ljava/lang/CharSequence;"/> @@ -52513,6 +50836,7 @@ <class name="android/view/accessibility/AccessibilityWindowInfo" since="21"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <method name="getAnchor()Landroid/view/accessibility/AccessibilityNodeInfo;" since="24"/> <method name="getBoundsInScreen(Landroid/graphics/Rect;)V"/> <method name="getChild(I)Landroid/view/accessibility/AccessibilityWindowInfo;"/> @@ -52539,6 +50863,8 @@ </class> <class name="android/view/accessibility/CaptioningManager" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="addCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V"/> <method name="getFontScale()F"/> <method name="getLocale()Ljava/util/Locale;"/> @@ -52548,6 +50874,8 @@ </class> <class name="android/view/accessibility/CaptioningManager$CaptionStyle" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIIIILjava/lang/String;)V" since="29"/> <method name="getTypeface()Landroid/graphics/Typeface;"/> <method name="hasBackgroundColor()Z" since="21"/> <method name="hasEdgeColor()Z" since="21"/> @@ -52605,7 +50933,7 @@ <method name="computeDurationHint()J" since="3"/> <method name="ensureInterpolator()V"/> <method name="getBackgroundColor()I" since="12"/> - <method name="getDetachWallpaper()Z" since="5" deprecated="29"/> + <method name="getDetachWallpaper()Z" since="5"/> <method name="getDuration()J"/> <method name="getFillAfter()Z"/> <method name="getFillBefore()Z"/> @@ -52629,7 +50957,7 @@ <method name="scaleCurrentDuration(F)V"/> <method name="setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V"/> <method name="setBackgroundColor(I)V" since="12"/> - <method name="setDetachWallpaper(Z)V" since="5" deprecated="29"/> + <method name="setDetachWallpaper(Z)V" since="5"/> <method name="setDuration(J)V"/> <method name="setFillAfter(Z)V"/> <method name="setFillBefore(Z)V"/> @@ -52868,10 +51196,13 @@ <class name="android/view/autofill/AutofillId" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/view/autofill/AutofillManager" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="commit()V"/> <method name="disableAutofillServices()V"/> @@ -52916,6 +51247,8 @@ <class name="android/view/autofill/AutofillValue" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="forDate(J)Landroid/view/autofill/AutofillValue;"/> <method name="forList(I)Landroid/view/autofill/AutofillValue;"/> <method name="forText(Ljava/lang/CharSequence;)Landroid/view/autofill/AutofillValue;"/> @@ -52930,79 +51263,6 @@ <method name="isToggle()Z"/> <field name="CREATOR"/> </class> - <class name="android/view/contentcapture/ContentCaptureCondition" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Landroid/content/LocusId;I)V"/> - <method name="getFlags()I"/> - <method name="getLocusId()Landroid/content/LocusId;"/> - <field name="CREATOR"/> - <field name="FLAG_IS_REGEX"/> - </class> - <class name="android/view/contentcapture/ContentCaptureContext" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="forLocusId(Ljava/lang/String;)Landroid/view/contentcapture/ContentCaptureContext;"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getLocusId()Landroid/content/LocusId;"/> - <field name="CREATOR"/> - </class> - <class name="android/view/contentcapture/ContentCaptureContext$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/content/LocusId;)V"/> - <method name="build()Landroid/view/contentcapture/ContentCaptureContext;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/contentcapture/ContentCaptureContext$Builder;"/> - </class> - <class name="android/view/contentcapture/ContentCaptureManager" since="29"> - <extends name="java/lang/Object"/> - <method name="getContentCaptureConditions()Ljava/util/Set;"/> - <method name="getServiceComponentName()Landroid/content/ComponentName;"/> - <method name="isContentCaptureEnabled()Z"/> - <method name="removeData(Landroid/view/contentcapture/DataRemovalRequest;)V"/> - <method name="setContentCaptureEnabled(Z)V"/> - </class> - <class name="android/view/contentcapture/ContentCaptureSession" since="29"> - <extends name="java/lang/Object"/> - <implements name="java/lang/AutoCloseable"/> - <method name="createContentCaptureSession(Landroid/view/contentcapture/ContentCaptureContext;)Landroid/view/contentcapture/ContentCaptureSession;"/> - <method name="destroy()V"/> - <method name="getContentCaptureContext()Landroid/view/contentcapture/ContentCaptureContext;"/> - <method name="getContentCaptureSessionId()Landroid/view/contentcapture/ContentCaptureSessionId;"/> - <method name="newAutofillId(Landroid/view/autofill/AutofillId;J)Landroid/view/autofill/AutofillId;"/> - <method name="newViewStructure(Landroid/view/View;)Landroid/view/ViewStructure;"/> - <method name="newVirtualViewStructure(Landroid/view/autofill/AutofillId;J)Landroid/view/ViewStructure;"/> - <method name="notifyViewAppeared(Landroid/view/ViewStructure;)V"/> - <method name="notifyViewDisappeared(Landroid/view/autofill/AutofillId;)V"/> - <method name="notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V"/> - <method name="notifyViewsDisappeared(Landroid/view/autofill/AutofillId;[J)V"/> - <method name="setContentCaptureContext(Landroid/view/contentcapture/ContentCaptureContext;)V"/> - </class> - <class name="android/view/contentcapture/ContentCaptureSessionId" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <field name="CREATOR"/> - </class> - <class name="android/view/contentcapture/DataRemovalRequest" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getLocusIdRequests()Ljava/util/List;"/> - <method name="getPackageName()Ljava/lang/String;"/> - <method name="isForEverything()Z"/> - <field name="CREATOR"/> - <field name="FLAG_IS_PREFIX"/> - </class> - <class name="android/view/contentcapture/DataRemovalRequest$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="addLocusId(Landroid/content/LocusId;I)Landroid/view/contentcapture/DataRemovalRequest$Builder;"/> - <method name="build()Landroid/view/contentcapture/DataRemovalRequest;"/> - <method name="forEverything()Landroid/view/contentcapture/DataRemovalRequest$Builder;"/> - </class> - <class name="android/view/contentcapture/DataRemovalRequest$LocusIdRequest" since="29"> - <extends name="java/lang/Object"/> - <method name="getFlags()I"/> - <method name="getLocusId()Landroid/content/LocusId;"/> - </class> <class name="android/view/inputmethod/BaseInputConnection" since="3"> <extends name="java/lang/Object"/> <implements name="android/view/inputmethod/InputConnection"/> @@ -53240,6 +51500,7 @@ </class> <class name="android/view/inputmethod/InputMethodManager" since="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="dispatchKeyEventFromInputMethod(Landroid/view/View;Landroid/view/KeyEvent;)V" since="24"/> <method name="displayCompletions(Landroid/view/View;[Landroid/view/inputmethod/CompletionInfo;)V"/> <method name="getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;" since="11"/> @@ -53259,8 +51520,8 @@ <method name="isWatchingCursor(Landroid/view/View;)Z" deprecated="21"/> <method name="restartInput(Landroid/view/View;)V"/> <method name="sendAppPrivateCommand(Landroid/view/View;Ljava/lang/String;Landroid/os/Bundle;)V"/> - <method name="setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V" since="14" deprecated="29"/> - <method name="setCurrentInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Z" since="11" deprecated="29"/> + <method name="setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V" since="14"/> + <method name="setCurrentInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Z" since="11"/> <method name="setInputMethod(Landroid/os/IBinder;Ljava/lang/String;)V" deprecated="28"/> <method name="setInputMethodAndSubtype(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" deprecated="28"/> <method name="shouldOfferSwitchingToNextInputMethod(Landroid/os/IBinder;)Z" since="19" deprecated="28"/> @@ -53278,7 +51539,7 @@ <method name="updateCursorAnchorInfo(Landroid/view/View;Landroid/view/inputmethod/CursorAnchorInfo;)V" since="21"/> <method name="updateExtractedText(Landroid/view/View;ILandroid/view/inputmethod/ExtractedText;)V"/> <method name="updateSelection(Landroid/view/View;IIII)V"/> - <method name="viewClicked(Landroid/view/View;)V" since="14" deprecated="29"/> + <method name="viewClicked(Landroid/view/View;)V" since="14"/> <field name="HIDE_IMPLICIT_ONLY"/> <field name="HIDE_NOT_ALWAYS"/> <field name="RESULT_HIDDEN"/> @@ -53310,6 +51571,7 @@ <class name="android/view/inputmethod/InputMethodSubtype" since="11"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="14"/> <method name="<init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V" since="14" deprecated="19"/> <method name="<init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V" since="17" deprecated="19"/> <method name="containsExtraValueKey(Ljava/lang/String;)Z" since="12"/> @@ -53341,160 +51603,11 @@ <method name="setSubtypeMode(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;"/> <method name="setSubtypeNameResId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;"/> </class> - <class name="android/view/inspector/InspectionCompanion" since="29"> - <extends name="java/lang/Object"/> - <method name="mapProperties(Landroid/view/inspector/PropertyMapper;)V"/> - <method name="readProperties(Ljava/lang/Object;Landroid/view/inspector/PropertyReader;)V"/> - </class> - <class name="android/view/inspector/InspectionCompanion$UninitializedPropertyMapException" since="29"> - <extends name="java/lang/RuntimeException"/> - <method name="<init>()V"/> - </class> - <class name="android/view/inspector/InspectionCompanionProvider" since="29"> - <extends name="java/lang/Object"/> - <method name="provide(Ljava/lang/Class;)Landroid/view/inspector/InspectionCompanion;"/> - </class> - <class name="android/view/inspector/IntFlagMapping" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="add(IILjava/lang/String;)V"/> - <method name="get(I)Ljava/util/Set;"/> - </class> - <class name="android/view/inspector/PropertyMapper" since="29"> - <extends name="java/lang/Object"/> - <method name="mapBoolean(Ljava/lang/String;I)I"/> - <method name="mapByte(Ljava/lang/String;I)I"/> - <method name="mapChar(Ljava/lang/String;I)I"/> - <method name="mapColor(Ljava/lang/String;I)I"/> - <method name="mapDouble(Ljava/lang/String;I)I"/> - <method name="mapFloat(Ljava/lang/String;I)I"/> - <method name="mapGravity(Ljava/lang/String;I)I"/> - <method name="mapInt(Ljava/lang/String;I)I"/> - <method name="mapIntEnum(Ljava/lang/String;ILjava/util/function/IntFunction;)I"/> - <method name="mapIntFlag(Ljava/lang/String;ILjava/util/function/IntFunction;)I"/> - <method name="mapLong(Ljava/lang/String;I)I"/> - <method name="mapObject(Ljava/lang/String;I)I"/> - <method name="mapResourceId(Ljava/lang/String;I)I"/> - <method name="mapShort(Ljava/lang/String;I)I"/> - </class> - <class name="android/view/inspector/PropertyMapper$PropertyConflictException" since="29"> - <extends name="java/lang/RuntimeException"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"/> - </class> - <class name="android/view/inspector/PropertyReader" since="29"> - <extends name="java/lang/Object"/> - <method name="readBoolean(IZ)V"/> - <method name="readByte(IB)V"/> - <method name="readChar(IC)V"/> - <method name="readColor(II)V"/> - <method name="readColor(IJ)V"/> - <method name="readColor(ILandroid/graphics/Color;)V"/> - <method name="readDouble(ID)V"/> - <method name="readFloat(IF)V"/> - <method name="readGravity(II)V"/> - <method name="readInt(II)V"/> - <method name="readIntEnum(II)V"/> - <method name="readIntFlag(II)V"/> - <method name="readLong(IJ)V"/> - <method name="readObject(ILjava/lang/Object;)V"/> - <method name="readResourceId(II)V"/> - <method name="readShort(IS)V"/> - </class> - <class name="android/view/inspector/PropertyReader$PropertyTypeMismatchException" since="29"> - <extends name="java/lang/RuntimeException"/> - <method name="<init>(ILjava/lang/String;Ljava/lang/String;)V"/> - <method name="<init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"/> - </class> - <class name="android/view/inspector/StaticInspectionCompanionProvider" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/view/inspector/InspectionCompanionProvider"/> - <method name="<init>()V"/> - </class> - <class name="android/view/inspector/WindowInspector" since="29"> - <extends name="java/lang/Object"/> - <method name="getGlobalWindowViews()Ljava/util/List;"/> - </class> - <class name="android/view/textclassifier/ConversationAction" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getAction()Landroid/app/RemoteAction;"/> - <method name="getConfidenceScore()F"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getTextReply()Ljava/lang/CharSequence;"/> - <method name="getType()Ljava/lang/String;"/> - <field name="CREATOR"/> - <field name="TYPE_CALL_PHONE"/> - <field name="TYPE_CREATE_REMINDER"/> - <field name="TYPE_OPEN_URL"/> - <field name="TYPE_SEND_EMAIL"/> - <field name="TYPE_SEND_SMS"/> - <field name="TYPE_SHARE_LOCATION"/> - <field name="TYPE_TEXT_REPLY"/> - <field name="TYPE_TRACK_FLIGHT"/> - <field name="TYPE_VIEW_CALENDAR"/> - <field name="TYPE_VIEW_MAP"/> - </class> - <class name="android/view/textclassifier/ConversationAction$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Ljava/lang/String;)V"/> - <method name="build()Landroid/view/textclassifier/ConversationAction;"/> - <method name="setAction(Landroid/app/RemoteAction;)Landroid/view/textclassifier/ConversationAction$Builder;"/> - <method name="setConfidenceScore(F)Landroid/view/textclassifier/ConversationAction$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/ConversationAction$Builder;"/> - <method name="setTextReply(Ljava/lang/CharSequence;)Landroid/view/textclassifier/ConversationAction$Builder;"/> - </class> - <class name="android/view/textclassifier/ConversationActions" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="<init>(Ljava/util/List;Ljava/lang/String;)V"/> - <method name="getConversationActions()Ljava/util/List;"/> - <method name="getId()Ljava/lang/String;"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/ConversationActions$Message" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getAuthor()Landroid/app/Person;"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getReferenceTime()Ljava/time/ZonedDateTime;"/> - <method name="getText()Ljava/lang/CharSequence;"/> - <field name="CREATOR"/> - <field name="PERSON_USER_OTHERS"/> - <field name="PERSON_USER_SELF"/> - </class> - <class name="android/view/textclassifier/ConversationActions$Message$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/app/Person;)V"/> - <method name="build()Landroid/view/textclassifier/ConversationActions$Message;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/ConversationActions$Message$Builder;"/> - <method name="setReferenceTime(Ljava/time/ZonedDateTime;)Landroid/view/textclassifier/ConversationActions$Message$Builder;"/> - <method name="setText(Ljava/lang/CharSequence;)Landroid/view/textclassifier/ConversationActions$Message$Builder;"/> - </class> - <class name="android/view/textclassifier/ConversationActions$Request" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getCallingPackageName()Ljava/lang/String;"/> - <method name="getConversation()Ljava/util/List;"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getHints()Ljava/util/List;"/> - <method name="getMaxSuggestions()I"/> - <method name="getTypeConfig()Landroid/view/textclassifier/TextClassifier$EntityConfig;"/> - <field name="CREATOR"/> - <field name="HINT_FOR_IN_APP"/> - <field name="HINT_FOR_NOTIFICATION"/> - </class> - <class name="android/view/textclassifier/ConversationActions$Request$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Ljava/util/List;)V"/> - <method name="build()Landroid/view/textclassifier/ConversationActions$Request;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/ConversationActions$Request$Builder;"/> - <method name="setHints(Ljava/util/List;)Landroid/view/textclassifier/ConversationActions$Request$Builder;"/> - <method name="setMaxSuggestions(I)Landroid/view/textclassifier/ConversationActions$Request$Builder;"/> - <method name="setTypeConfig(Landroid/view/textclassifier/TextClassifier$EntityConfig;)Landroid/view/textclassifier/ConversationActions$Request$Builder;"/> - </class> <class name="android/view/textclassifier/SelectionEvent" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="createSelectionActionEvent(III)Landroid/view/textclassifier/SelectionEvent;"/> <method name="createSelectionActionEvent(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/SelectionEvent;"/> <method name="createSelectionModifiedEvent(II)Landroid/view/textclassifier/SelectionEvent;"/> @@ -53542,11 +51655,12 @@ <class name="android/view/textclassifier/TextClassification" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable" since="28"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getActions()Ljava/util/List;" since="28"/> <method name="getConfidenceScore(Ljava/lang/String;)F"/> <method name="getEntity(I)Ljava/lang/String;"/> <method name="getEntityCount()I"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getIcon()Landroid/graphics/drawable/Drawable;" deprecated="28"/> <method name="getId()Ljava/lang/String;" since="28"/> <method name="getIntent()Landroid/content/Intent;" deprecated="28"/> @@ -53561,7 +51675,6 @@ <method name="addAction(Landroid/app/RemoteAction;)Landroid/view/textclassifier/TextClassification$Builder;" since="28"/> <method name="build()Landroid/view/textclassifier/TextClassification;"/> <method name="setEntityType(Ljava/lang/String;F)Landroid/view/textclassifier/TextClassification$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextClassification$Builder;" since="29"/> <method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/textclassifier/TextClassification$Builder;" deprecated="28"/> <method name="setId(Ljava/lang/String;)Landroid/view/textclassifier/TextClassification$Builder;" since="28"/> <method name="setIntent(Landroid/content/Intent;)Landroid/view/textclassifier/TextClassification$Builder;" deprecated="28"/> @@ -53572,10 +51685,10 @@ <class name="android/view/textclassifier/TextClassification$Request" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="getCallingPackageName()Ljava/lang/String;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getDefaultLocales()Landroid/os/LocaleList;"/> <method name="getEndIndex()I"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getReferenceTime()Ljava/time/ZonedDateTime;"/> <method name="getStartIndex()I"/> <method name="getText()Ljava/lang/CharSequence;"/> @@ -53586,12 +51699,13 @@ <method name="<init>(Ljava/lang/CharSequence;II)V"/> <method name="build()Landroid/view/textclassifier/TextClassification$Request;"/> <method name="setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextClassification$Request$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextClassification$Request$Builder;" since="29"/> <method name="setReferenceTime(Ljava/time/ZonedDateTime;)Landroid/view/textclassifier/TextClassification$Request$Builder;"/> </class> <class name="android/view/textclassifier/TextClassificationContext" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getPackageName()Ljava/lang/String;"/> <method name="getWidgetType()Ljava/lang/String;"/> <method name="getWidgetVersion()Ljava/lang/String;"/> @@ -53605,6 +51719,8 @@ </class> <class name="android/view/textclassifier/TextClassificationManager" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/content/Context;)V" since="29"/> <method name="createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;" since="28"/> <method name="getTextClassifier()Landroid/view/textclassifier/TextClassifier;"/> <method name="setTextClassificationSessionFactory(Landroid/view/textclassifier/TextClassificationSessionFactory;)V" since="28"/> @@ -53617,6 +51733,7 @@ <class name="android/view/textclassifier/TextClassificationSessionId" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V"/> <field name="CREATOR"/> </class> <class name="android/view/textclassifier/TextClassifier" since="26"> @@ -53624,16 +51741,12 @@ <method name="classifyText(Landroid/view/textclassifier/TextClassification$Request;)Landroid/view/textclassifier/TextClassification;" since="28"/> <method name="classifyText(Ljava/lang/CharSequence;IILandroid/os/LocaleList;)Landroid/view/textclassifier/TextClassification;"/> <method name="destroy()V" since="28"/> - <method name="detectLanguage(Landroid/view/textclassifier/TextLanguage$Request;)Landroid/view/textclassifier/TextLanguage;" since="29"/> <method name="generateLinks(Landroid/view/textclassifier/TextLinks$Request;)Landroid/view/textclassifier/TextLinks;" since="28"/> <method name="getMaxGenerateLinksTextLength()I" since="28"/> <method name="isDestroyed()Z" since="28"/> <method name="onSelectionEvent(Landroid/view/textclassifier/SelectionEvent;)V" since="28"/> - <method name="onTextClassifierEvent(Landroid/view/textclassifier/TextClassifierEvent;)V" since="29"/> - <method name="suggestConversationActions(Landroid/view/textclassifier/ConversationActions$Request;)Landroid/view/textclassifier/ConversationActions;" since="29"/> <method name="suggestSelection(Landroid/view/textclassifier/TextSelection$Request;)Landroid/view/textclassifier/TextSelection;" since="28"/> <method name="suggestSelection(Ljava/lang/CharSequence;IILandroid/os/LocaleList;)Landroid/view/textclassifier/TextSelection;"/> - <field name="EXTRA_FROM_TEXT_CLASSIFIER" since="29"/> <field name="HINT_TEXT_IS_EDITABLE" since="28"/> <field name="HINT_TEXT_IS_NOT_EDITABLE" since="28"/> <field name="NO_OP"/> @@ -53651,7 +51764,6 @@ <field name="WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW" since="28"/> <field name="WIDGET_TYPE_EDITTEXT" since="28"/> <field name="WIDGET_TYPE_EDIT_WEBVIEW" since="28"/> - <field name="WIDGET_TYPE_NOTIFICATION" since="29"/> <field name="WIDGET_TYPE_TEXTVIEW" since="28"/> <field name="WIDGET_TYPE_UNKNOWN" since="28"/> <field name="WIDGET_TYPE_UNSELECTABLE_TEXTVIEW" since="28"/> @@ -53660,156 +51772,21 @@ <class name="android/view/textclassifier/TextClassifier$EntityConfig" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="create(Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;" deprecated="29"/> - <method name="createWithExplicitEntityList(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;" deprecated="29"/> - <method name="createWithHints(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;" deprecated="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> + <method name="create(Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;"/> + <method name="createWithExplicitEntityList(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;"/> + <method name="createWithHints(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;"/> <method name="getHints()Ljava/util/Collection;"/> <method name="resolveEntityListModifications(Ljava/util/Collection;)Ljava/util/Collection;"/> - <method name="shouldIncludeTypesFromTextClassifier()Z" since="29"/> <field name="CREATOR"/> </class> - <class name="android/view/textclassifier/TextClassifier$EntityConfig$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/view/textclassifier/TextClassifier$EntityConfig;"/> - <method name="includeTypesFromTextClassifier(Z)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;"/> - <method name="setExcludedTypes(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;"/> - <method name="setHints(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;"/> - <method name="setIncludedTypes(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getActionIndices()[I"/> - <method name="getEntityTypes()[Ljava/lang/String;"/> - <method name="getEventCategory()I"/> - <method name="getEventContext()Landroid/view/textclassifier/TextClassificationContext;"/> - <method name="getEventIndex()I"/> - <method name="getEventType()I"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getLocale()Landroid/icu/util/ULocale;"/> - <method name="getModelName()Ljava/lang/String;"/> - <method name="getResultId()Ljava/lang/String;"/> - <method name="getScores()[F"/> - <field name="CATEGORY_CONVERSATION_ACTIONS"/> - <field name="CATEGORY_LANGUAGE_DETECTION"/> - <field name="CATEGORY_LINKIFY"/> - <field name="CATEGORY_SELECTION"/> - <field name="CREATOR"/> - <field name="TYPE_ACTIONS_GENERATED"/> - <field name="TYPE_ACTIONS_SHOWN"/> - <field name="TYPE_AUTO_SELECTION"/> - <field name="TYPE_COPY_ACTION"/> - <field name="TYPE_CUT_ACTION"/> - <field name="TYPE_LINK_CLICKED"/> - <field name="TYPE_MANUAL_REPLY"/> - <field name="TYPE_OTHER_ACTION"/> - <field name="TYPE_OVERTYPE"/> - <field name="TYPE_PASTE_ACTION"/> - <field name="TYPE_SELECTION_DESTROYED"/> - <field name="TYPE_SELECTION_DRAG"/> - <field name="TYPE_SELECTION_MODIFIED"/> - <field name="TYPE_SELECTION_RESET"/> - <field name="TYPE_SELECTION_STARTED"/> - <field name="TYPE_SELECT_ALL"/> - <field name="TYPE_SHARE_ACTION"/> - <field name="TYPE_SMART_ACTION"/> - <field name="TYPE_SMART_SELECTION_MULTI"/> - <field name="TYPE_SMART_SELECTION_SINGLE"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="setActionIndices([I)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setEntityTypes([Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setEventContext(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setEventIndex(I)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setLocale(Landroid/icu/util/ULocale;)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setModelName(Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setResultId(Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - <method name="setScores([F)Landroid/view/textclassifier/TextClassifierEvent$Builder;"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$ConversationActionsEvent" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$ConversationActionsEvent$Builder" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent$Builder"/> - <method name="<init>(I)V"/> - <method name="build()Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent$Builder" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent$Builder"/> - <method name="<init>(I)V"/> - <method name="build()Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent;"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$TextLinkifyEvent" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$TextLinkifyEvent$Builder" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent$Builder"/> - <method name="<init>(I)V"/> - <method name="build()Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent;"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$TextSelectionEvent" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent"/> - <method name="getRelativeSuggestedWordEndIndex()I"/> - <method name="getRelativeSuggestedWordStartIndex()I"/> - <method name="getRelativeWordEndIndex()I"/> - <method name="getRelativeWordStartIndex()I"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/TextClassifierEvent$TextSelectionEvent$Builder" since="29"> - <extends name="android/view/textclassifier/TextClassifierEvent$Builder"/> - <method name="<init>(I)V"/> - <method name="build()Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent;"/> - <method name="setRelativeSuggestedWordEndIndex(I)Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent$Builder;"/> - <method name="setRelativeSuggestedWordStartIndex(I)Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent$Builder;"/> - <method name="setRelativeWordEndIndex(I)Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent$Builder;"/> - <method name="setRelativeWordStartIndex(I)Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent$Builder;"/> - </class> - <class name="android/view/textclassifier/TextLanguage" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getConfidenceScore(Landroid/icu/util/ULocale;)F"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getId()Ljava/lang/String;"/> - <method name="getLocale(I)Landroid/icu/util/ULocale;"/> - <method name="getLocaleHypothesisCount()I"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/TextLanguage$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="build()Landroid/view/textclassifier/TextLanguage;"/> - <method name="putLocale(Landroid/icu/util/ULocale;F)Landroid/view/textclassifier/TextLanguage$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextLanguage$Builder;"/> - <method name="setId(Ljava/lang/String;)Landroid/view/textclassifier/TextLanguage$Builder;"/> - </class> - <class name="android/view/textclassifier/TextLanguage$Request" since="29"> - <extends name="java/lang/Object"/> - <implements name="android/os/Parcelable"/> - <method name="getCallingPackageName()Ljava/lang/String;"/> - <method name="getExtras()Landroid/os/Bundle;"/> - <method name="getText()Ljava/lang/CharSequence;"/> - <field name="CREATOR"/> - </class> - <class name="android/view/textclassifier/TextLanguage$Request$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Ljava/lang/CharSequence;)V"/> - <method name="build()Landroid/view/textclassifier/TextLanguage$Request;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextLanguage$Request$Builder;"/> - </class> <class name="android/view/textclassifier/TextLinks" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="apply(Landroid/text/Spannable;ILjava/util/function/Function;)I"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getLinks()Ljava/util/Collection;"/> <field name="APPLY_STRATEGY_IGNORE"/> <field name="APPLY_STRATEGY_REPLACE"/> @@ -53818,24 +51795,21 @@ <field name="STATUS_LINKS_APPLIED"/> <field name="STATUS_NO_LINKS_APPLIED"/> <field name="STATUS_NO_LINKS_FOUND"/> - <field name="STATUS_UNSUPPORTED_CHARACTER" since="29"/> </class> <class name="android/view/textclassifier/TextLinks$Builder" since="28"> <extends name="java/lang/Object"/> <method name="<init>(Ljava/lang/String;)V"/> <method name="addLink(IILjava/util/Map;)Landroid/view/textclassifier/TextLinks$Builder;"/> - <method name="addLink(IILjava/util/Map;Landroid/os/Bundle;)Landroid/view/textclassifier/TextLinks$Builder;" since="29"/> <method name="build()Landroid/view/textclassifier/TextLinks;"/> <method name="clearTextLinks()Landroid/view/textclassifier/TextLinks$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextLinks$Builder;" since="29"/> </class> <class name="android/view/textclassifier/TextLinks$Request" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="getCallingPackageName()Ljava/lang/String;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getDefaultLocales()Landroid/os/LocaleList;"/> <method name="getEntityConfig()Landroid/view/textclassifier/TextClassifier$EntityConfig;"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getText()Ljava/lang/CharSequence;"/> <field name="CREATOR"/> </class> @@ -53845,16 +51819,16 @@ <method name="build()Landroid/view/textclassifier/TextLinks$Request;"/> <method name="setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextLinks$Request$Builder;"/> <method name="setEntityConfig(Landroid/view/textclassifier/TextClassifier$EntityConfig;)Landroid/view/textclassifier/TextLinks$Request$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextLinks$Request$Builder;" since="29"/> </class> <class name="android/view/textclassifier/TextLinks$TextLink" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getConfidenceScore(Ljava/lang/String;)F"/> <method name="getEnd()I"/> <method name="getEntity(I)Ljava/lang/String;"/> <method name="getEntityCount()I"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getStart()I"/> <field name="CREATOR"/> </class> @@ -53866,10 +51840,11 @@ <class name="android/view/textclassifier/TextSelection" since="26"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable" since="28"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getConfidenceScore(Ljava/lang/String;)F"/> <method name="getEntity(I)Ljava/lang/String;"/> <method name="getEntityCount()I"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getId()Ljava/lang/String;" since="28"/> <method name="getSelectionEndIndex()I"/> <method name="getSelectionStartIndex()I"/> @@ -53880,16 +51855,15 @@ <method name="<init>(II)V"/> <method name="build()Landroid/view/textclassifier/TextSelection;"/> <method name="setEntityType(Ljava/lang/String;F)Landroid/view/textclassifier/TextSelection$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextSelection$Builder;" since="29"/> <method name="setId(Ljava/lang/String;)Landroid/view/textclassifier/TextSelection$Builder;" since="28"/> </class> <class name="android/view/textclassifier/TextSelection$Request" since="28"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> - <method name="getCallingPackageName()Ljava/lang/String;" since="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getDefaultLocales()Landroid/os/LocaleList;"/> <method name="getEndIndex()I"/> - <method name="getExtras()Landroid/os/Bundle;" since="29"/> <method name="getStartIndex()I"/> <method name="getText()Ljava/lang/CharSequence;"/> <field name="CREATOR"/> @@ -53899,7 +51873,6 @@ <method name="<init>(Ljava/lang/CharSequence;II)V"/> <method name="build()Landroid/view/textclassifier/TextSelection$Request;"/> <method name="setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextSelection$Request$Builder;"/> - <method name="setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/TextSelection$Request$Builder;" since="29"/> </class> <class name="android/view/textservice/SentenceSuggestionsInfo" since="16"> <extends name="java/lang/Object"/> @@ -53915,6 +51888,8 @@ <class name="android/view/textservice/SpellCheckerInfo" since="14"> <extends name="java/lang/Object"/> <implements name="android/os/Parcelable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcel;)V" since="29"/> <method name="getComponent()Landroid/content/ComponentName;"/> <method name="getId()Ljava/lang/String;"/> <method name="getPackageName()Ljava/lang/String;"/> @@ -53928,6 +51903,7 @@ </class> <class name="android/view/textservice/SpellCheckerSession" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel()V" since="15"/> <method name="close()V"/> <method name="getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V" since="16"/> @@ -53987,17 +51963,18 @@ </class> <class name="android/view/textservice/TextServicesManager" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession;"/> </class> <class name="android/webkit/CacheManager" since="1" deprecated="11" removed="17"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="cacheDisabled()Z" deprecated="15"/> - <method name="endCacheTransaction()Z" deprecated="15"/> - <method name="getCacheFile(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" deprecated="15"/> - <method name="getCacheFileBaseDir()Ljava/io/File;" deprecated="15"/> - <method name="saveCacheFile(Ljava/lang/String;Landroid/webkit/CacheManager$CacheResult;)V" deprecated="15"/> - <method name="startCacheTransaction()Z" deprecated="15"/> + <method name="cacheDisabled()Z" deprecated="16"/> + <method name="endCacheTransaction()Z" deprecated="16"/> + <method name="getCacheFile(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" deprecated="16"/> + <method name="getCacheFileBaseDir()Ljava/io/File;" deprecated="16"/> + <method name="saveCacheFile(Ljava/lang/String;Landroid/webkit/CacheManager$CacheResult;)V" deprecated="16"/> + <method name="startCacheTransaction()Z" deprecated="16"/> </class> <class name="android/webkit/CacheManager$CacheResult" since="1" deprecated="11" removed="17"> <extends name="java/lang/Object"/> @@ -54018,6 +51995,48 @@ <method name="setEncoding(Ljava/lang/String;)V"/> <method name="setInputStream(Ljava/io/InputStream;)V"/> </class> + <class name="android/webkit/CallbackProxy" since="1" removed="8"> + <extends name="android/os/Handler"/> + <method name="<init>(Landroid/content/Context;Landroid/webkit/WebView;)V"/> + <method name="addMessageToConsole(Ljava/lang/String;ILjava/lang/String;)V" since="7"/> + <method name="createWindow(ZZ)Landroid/webkit/WebView;"/> + <method name="doUpdateVisitedHistory(Ljava/lang/String;Z)V"/> + <method name="getBackForwardList()Landroid/webkit/WebBackForwardList;"/> + <method name="getProgress()I"/> + <method name="getVisitedHistory(Landroid/webkit/ValueCallback;)V" since="7"/> + <method name="getWebChromeClient()Landroid/webkit/WebChromeClient;" since="7"/> + <method name="onCloseWindow(Landroid/webkit/WebView;)V"/> + <method name="onDownloadStart(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z"/> + <method name="onExceededDatabaseQuota(Ljava/lang/String;Ljava/lang/String;JJJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="5"/> + <method name="onFormResubmission(Landroid/os/Message;Landroid/os/Message;)V"/> + <method name="onGeolocationPermissionsHidePrompt()V" since="7"/> + <method name="onGeolocationPermissionsShowPrompt(Ljava/lang/String;Landroid/webkit/GeolocationPermissions$Callback;)V" since="7"/> + <method name="onJsAlert(Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="onJsBeforeUnload(Ljava/lang/String;Ljava/lang/String;)Z"/> + <method name="onJsConfirm(Ljava/lang/String;Ljava/lang/String;)Z"/> + <method name="onJsPrompt(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> + <method name="onJsTimeout()Z" since="7"/> + <method name="onLoadResource(Ljava/lang/String;)V"/> + <method name="onPageFinished(Ljava/lang/String;)V"/> + <method name="onPageStarted(Ljava/lang/String;Landroid/graphics/Bitmap;)V"/> + <method name="onProgressChanged(I)V"/> + <method name="onReachedMaxAppCacheSize(JJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="7"/> + <method name="onReceivedError(ILjava/lang/String;Ljava/lang/String;)V"/> + <method name="onReceivedHttpAuthRequest(Landroid/webkit/HttpAuthHandler;Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="onReceivedIcon(Landroid/graphics/Bitmap;)V"/> + <method name="onReceivedTitle(Ljava/lang/String;)V"/> + <method name="onRequestFocus()V"/> + <method name="onSavePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)Z"/> + <method name="onScaleChanged(FF)V"/> + <method name="onTooManyRedirects(Landroid/os/Message;Landroid/os/Message;)V"/> + <method name="onUnhandledKeyEvent(Landroid/view/KeyEvent;)V"/> + <method name="setDownloadListener(Landroid/webkit/DownloadListener;)V"/> + <method name="setWebChromeClient(Landroid/webkit/WebChromeClient;)V"/> + <method name="setWebViewClient(Landroid/webkit/WebViewClient;)V"/> + <method name="shouldOverrideUrlLoading(Ljava/lang/String;)Z"/> + <method name="uiOverrideKeyEvent(Landroid/view/KeyEvent;)Z"/> + <method name="uiOverrideUrlLoading(Ljava/lang/String;)Z"/> + </class> <class name="android/webkit/ClientCertRequest" since="21"> <extends name="java/lang/Object"/> <method name="<init>()V"/> @@ -54049,7 +52068,7 @@ </class> <class name="android/webkit/CookieManager" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" since="22" deprecated="29"/> + <method name="<init>()V"/> <method name="acceptCookie()Z"/> <method name="acceptThirdPartyCookies(Landroid/webkit/WebView;)Z" since="21"/> <method name="allowFileSchemeCookies()Z" since="12"/> @@ -54069,19 +52088,15 @@ <method name="setCookie(Ljava/lang/String;Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="21"/> </class> <class name="android/webkit/CookieSyncManager" since="1" deprecated="21"> - <extends name="java/lang/Object"/> - <implements name="java/lang/Runnable"/> - <method name="createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager;" deprecated="29"/> - <method name="getInstance()Landroid/webkit/CookieSyncManager;" deprecated="29"/> - <method name="onSyncInit()V" since="28" removed="29"/> - <method name="resetSync()V" since="9" deprecated="21"/> - <method name="startSync()V" since="9" deprecated="21"/> - <method name="stopSync()V" since="9" deprecated="21"/> - <method name="sync()V" since="9" deprecated="21"/> + <extends name="android/webkit/WebSyncManager" removed="29"/> + <extends name="java/lang/Object" since="29"/> + <method name="<init>()V"/> + <method name="createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager;"/> + <method name="getInstance()Landroid/webkit/CookieSyncManager;"/> <method name="syncFromRamToFlash()V" deprecated="21"/> - <field name="LOGTAG" since="21" removed="28"/> - <field name="mDataBase" since="21" removed="28"/> - <field name="mHandler" since="21" removed="28"/> + <field name="LOGTAG" since="21" removed="29"/> + <field name="mDataBase" since="21" removed="29"/> + <field name="mHandler" since="21" removed="29"/> </class> <class name="android/webkit/DateSorter" since="1"> <extends name="java/lang/Object"/> @@ -54097,7 +52112,7 @@ </class> <class name="android/webkit/GeolocationPermissions" since="5"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="16"/> + <method name="<init>()V"/> <method name="allow(Ljava/lang/String;)V" since="7"/> <method name="clear(Ljava/lang/String;)V" since="7"/> <method name="clearAll()V" since="7"/> @@ -54111,6 +52126,7 @@ </class> <class name="android/webkit/HttpAuthHandler" since="1"> <extends name="android/os/Handler"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="proceed(Ljava/lang/String;Ljava/lang/String;)V"/> <method name="useHttpAuthUsernamePassword()Z"/> @@ -54121,10 +52137,12 @@ </class> <class name="android/webkit/JsPromptResult" since="1"> <extends name="android/webkit/JsResult"/> + <method name="<init>()V"/> <method name="confirm(Ljava/lang/String;)V"/> </class> <class name="android/webkit/JsResult" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="confirm()V"/> <method name="wakeUp()V" removed="16"/> @@ -54133,6 +52151,7 @@ </class> <class name="android/webkit/MimeTypeMap" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getExtensionFromMimeType(Ljava/lang/String;)Ljava/lang/String;"/> <method name="getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;"/> <method name="getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;"/> @@ -54194,13 +52213,13 @@ </class> <class name="android/webkit/RenderProcessGoneDetail" since="26"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> <method name="didCrash()Z"/> <method name="rendererPriorityAtExit()I"/> </class> <class name="android/webkit/SafeBrowsingResponse" since="27"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> <method name="backToSafety(Z)V"/> <method name="proceed(Z)V"/> <method name="showInterstitial(Z)V"/> @@ -54212,7 +52231,7 @@ </class> <class name="android/webkit/ServiceWorkerController" since="24"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> <method name="getInstance()Landroid/webkit/ServiceWorkerController;"/> <method name="getServiceWorkerWebSettings()Landroid/webkit/ServiceWorkerWebSettings;"/> <method name="setServiceWorkerClient(Landroid/webkit/ServiceWorkerClient;)V"/> @@ -54231,11 +52250,14 @@ </class> <class name="android/webkit/SslErrorHandler" since="1"> <extends name="android/os/Handler"/> + <method name="<init>()V"/> <method name="cancel()V"/> <method name="proceed()V"/> </class> <class name="android/webkit/TracingConfig" since="28"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/util/List;I)V" since="29"/> <method name="getCustomIncludedCategories()Ljava/util/List;"/> <method name="getPredefinedCategories()I"/> <method name="getTracingMode()I"/> @@ -54261,7 +52283,7 @@ </class> <class name="android/webkit/TracingController" since="28"> <extends name="java/lang/Object"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> <method name="getInstance()Landroid/webkit/TracingController;"/> <method name="isTracing()Z"/> <method name="start(Landroid/webkit/TracingConfig;)V"/> @@ -54277,7 +52299,7 @@ <method name="isAboutUrl(Ljava/lang/String;)Z"/> <method name="isAssetUrl(Ljava/lang/String;)Z"/> <method name="isContentUrl(Ljava/lang/String;)Z"/> - <method name="isCookielessProxyUrl(Ljava/lang/String;)Z" deprecated="15"/> + <method name="isCookielessProxyUrl(Ljava/lang/String;)Z" deprecated="16"/> <method name="isDataUrl(Ljava/lang/String;)Z"/> <method name="isFileUrl(Ljava/lang/String;)Z"/> <method name="isHttpUrl(Ljava/lang/String;)Z"/> @@ -54310,7 +52332,7 @@ <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> <implements name="java/lang/Cloneable"/> - <method name="<init>()V" since="22"/> + <method name="<init>()V"/> <method name="clone()Landroid/webkit/WebBackForwardList;"/> <method name="getCurrentIndex()I"/> <method name="getCurrentItem()Landroid/webkit/WebHistoryItem;"/> @@ -54325,7 +52347,7 @@ <method name="getVisitedHistory(Landroid/webkit/ValueCallback;)V" since="7"/> <method name="onCloseWindow(Landroid/webkit/WebView;)V"/> <method name="onConsoleMessage(Landroid/webkit/ConsoleMessage;)Z" since="8"/> - <method name="onConsoleMessage(Ljava/lang/String;ILjava/lang/String;)V" since="7" deprecated="15"/> + <method name="onConsoleMessage(Ljava/lang/String;ILjava/lang/String;)V" since="7" deprecated="16"/> <method name="onCreateWindow(Landroid/webkit/WebView;ZZLandroid/os/Message;)Z"/> <method name="onExceededDatabaseQuota(Ljava/lang/String;Ljava/lang/String;JJJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="5" deprecated="19"/> <method name="onGeolocationPermissionsHidePrompt()V" since="5"/> @@ -54369,28 +52391,28 @@ <class name="android/webkit/WebHistoryItem" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/Cloneable"/> - <method name="<init>()V" since="22"/> + <method name="<init>()V"/> <method name="clone()Landroid/webkit/WebHistoryItem;"/> <method name="getFavicon()Landroid/graphics/Bitmap;"/> - <method name="getId()I" deprecated="15" removed="17"/> + <method name="getId()I" deprecated="16" removed="17"/> <method name="getOriginalUrl()Ljava/lang/String;" since="3"/> <method name="getTitle()Ljava/lang/String;"/> <method name="getUrl()Ljava/lang/String;"/> </class> <class name="android/webkit/WebIconDatabase" since="1" deprecated="18"> <extends name="java/lang/Object"/> - <method name="<init>()V" since="22" deprecated="29"/> - <method name="close()V" deprecated="29"/> - <method name="getInstance()Landroid/webkit/WebIconDatabase;" deprecated="29"/> - <method name="open(Ljava/lang/String;)V" deprecated="29"/> - <method name="releaseIconForPageUrl(Ljava/lang/String;)V" deprecated="29"/> - <method name="removeAllIcons()V" deprecated="29"/> - <method name="requestIconForPageUrl(Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V" deprecated="29"/> - <method name="retainIconForPageUrl(Ljava/lang/String;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="close()V"/> + <method name="getInstance()Landroid/webkit/WebIconDatabase;"/> + <method name="open(Ljava/lang/String;)V"/> + <method name="releaseIconForPageUrl(Ljava/lang/String;)V"/> + <method name="removeAllIcons()V"/> + <method name="requestIconForPageUrl(Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V"/> + <method name="retainIconForPageUrl(Ljava/lang/String;)V"/> </class> <class name="android/webkit/WebIconDatabase$IconListener" since="1" deprecated="18"> <extends name="java/lang/Object"/> - <method name="onReceivedIcon(Ljava/lang/String;Landroid/graphics/Bitmap;)V" deprecated="29"/> + <method name="onReceivedIcon(Ljava/lang/String;Landroid/graphics/Bitmap;)V"/> </class> <class name="android/webkit/WebMessage" since="23"> <extends name="java/lang/Object"/> @@ -54401,6 +52423,7 @@ </class> <class name="android/webkit/WebMessagePort" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="close()V"/> <method name="postMessage(Landroid/webkit/WebMessage;)V"/> <method name="setWebMessageCallback(Landroid/webkit/WebMessagePort$WebMessageCallback;)V"/> @@ -54413,6 +52436,7 @@ </class> <class name="android/webkit/WebResourceError" since="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDescription()Ljava/lang/CharSequence;"/> <method name="getErrorCode()I"/> </class> @@ -54443,7 +52467,7 @@ </class> <class name="android/webkit/WebSettings" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" since="22"/> + <method name="<init>()V"/> <method name="enableSmoothTransition()Z" since="11" deprecated="17"/> <method name="getAllowContentAccess()Z" since="11"/> <method name="getAllowFileAccess()Z" since="3"/> @@ -54466,7 +52490,6 @@ <method name="getDomStorageEnabled()Z" since="7"/> <method name="getFantasyFontFamily()Ljava/lang/String;"/> <method name="getFixedFontFamily()Ljava/lang/String;"/> - <method name="getForceDark()I" since="29"/> <method name="getJavaScriptCanOpenWindowsAutomatically()Z"/> <method name="getJavaScriptEnabled()Z"/> <method name="getLayoutAlgorithm()Landroid/webkit/WebSettings$LayoutAlgorithm;"/> @@ -54477,23 +52500,23 @@ <method name="getMinimumFontSize()I"/> <method name="getMinimumLogicalFontSize()I"/> <method name="getMixedContentMode()I" since="21"/> - <method name="getNavDump()Z" deprecated="15" removed="17"/> + <method name="getNavDump()Z" deprecated="16" removed="17"/> <method name="getOffscreenPreRaster()Z" since="23"/> <method name="getPluginState()Landroid/webkit/WebSettings$PluginState;" since="8" deprecated="18"/> - <method name="getPluginsEnabled()Z" deprecated="15" removed="18"/> - <method name="getPluginsPath()Ljava/lang/String;" deprecated="15" removed="18"/> + <method name="getPluginsEnabled()Z" deprecated="16" removed="18"/> + <method name="getPluginsPath()Ljava/lang/String;" deprecated="16" removed="18"/> <method name="getSafeBrowsingEnabled()Z" since="26"/> <method name="getSansSerifFontFamily()Ljava/lang/String;"/> <method name="getSaveFormData()Z" deprecated="26"/> <method name="getSavePassword()Z" deprecated="18"/> <method name="getSerifFontFamily()Ljava/lang/String;"/> <method name="getStandardFontFamily()Ljava/lang/String;"/> - <method name="getTextSize()Landroid/webkit/WebSettings$TextSize;" deprecated="15"/> + <method name="getTextSize()Landroid/webkit/WebSettings$TextSize;" deprecated="16"/> <method name="getTextZoom()I" since="14"/> - <method name="getUseDoubleTree()Z" deprecated="15" removed="17"/> - <method name="getUseWebViewBackgroundForOverscrollBackground()Z" since="9" deprecated="15" removed="17"/> + <method name="getUseDoubleTree()Z" deprecated="16" removed="17"/> + <method name="getUseWebViewBackgroundForOverscrollBackground()Z" since="9" deprecated="16" removed="17"/> <method name="getUseWideViewPort()Z"/> - <method name="getUserAgent()I" deprecated="15" removed="17"/> + <method name="getUserAgent()I" deprecated="16" removed="17"/> <method name="getUserAgentString()Ljava/lang/String;" since="3"/> <method name="setAllowContentAccess(Z)V" since="11"/> <method name="setAllowFileAccess(Z)V" since="3"/> @@ -54519,7 +52542,6 @@ <method name="setEnableSmoothTransition(Z)V" since="11" deprecated="17"/> <method name="setFantasyFontFamily(Ljava/lang/String;)V"/> <method name="setFixedFontFamily(Ljava/lang/String;)V"/> - <method name="setForceDark(I)V" since="29"/> <method name="setGeolocationDatabasePath(Ljava/lang/String;)V" since="5" deprecated="24"/> <method name="setGeolocationEnabled(Z)V" since="5"/> <method name="setJavaScriptCanOpenWindowsAutomatically(Z)V"/> @@ -54532,12 +52554,12 @@ <method name="setMinimumFontSize(I)V"/> <method name="setMinimumLogicalFontSize(I)V"/> <method name="setMixedContentMode(I)V" since="21"/> - <method name="setNavDump(Z)V" deprecated="15" removed="17"/> + <method name="setNavDump(Z)V" deprecated="16" removed="17"/> <method name="setNeedInitialFocus(Z)V"/> <method name="setOffscreenPreRaster(Z)V" since="23"/> <method name="setPluginState(Landroid/webkit/WebSettings$PluginState;)V" since="8" deprecated="18"/> - <method name="setPluginsEnabled(Z)V" deprecated="15" removed="18"/> - <method name="setPluginsPath(Ljava/lang/String;)V" deprecated="15" removed="18"/> + <method name="setPluginsEnabled(Z)V" deprecated="16" removed="18"/> + <method name="setPluginsPath(Ljava/lang/String;)V" deprecated="16" removed="18"/> <method name="setRenderPriority(Landroid/webkit/WebSettings$RenderPriority;)V" deprecated="18"/> <method name="setSafeBrowsingEnabled(Z)V" since="26"/> <method name="setSansSerifFontFamily(Ljava/lang/String;)V"/> @@ -54547,18 +52569,15 @@ <method name="setStandardFontFamily(Ljava/lang/String;)V"/> <method name="setSupportMultipleWindows(Z)V"/> <method name="setSupportZoom(Z)V"/> - <method name="setTextSize(Landroid/webkit/WebSettings$TextSize;)V" deprecated="15"/> + <method name="setTextSize(Landroid/webkit/WebSettings$TextSize;)V" deprecated="16"/> <method name="setTextZoom(I)V" since="14"/> - <method name="setUseDoubleTree(Z)V" deprecated="15" removed="17"/> - <method name="setUseWebViewBackgroundForOverscrollBackground(Z)V" since="9" deprecated="15" removed="17"/> + <method name="setUseDoubleTree(Z)V" deprecated="16" removed="17"/> + <method name="setUseWebViewBackgroundForOverscrollBackground(Z)V" since="9" deprecated="16" removed="17"/> <method name="setUseWideViewPort(Z)V"/> - <method name="setUserAgent(I)V" deprecated="15" removed="17"/> + <method name="setUserAgent(I)V" deprecated="16" removed="17"/> <method name="setUserAgentString(Ljava/lang/String;)V" since="3"/> <method name="supportMultipleWindows()Z"/> <method name="supportZoom()Z"/> - <field name="FORCE_DARK_AUTO" since="29"/> - <field name="FORCE_DARK_OFF" since="29"/> - <field name="FORCE_DARK_ON" since="29"/> <field name="LOAD_CACHE_ELSE_NETWORK"/> <field name="LOAD_CACHE_ONLY"/> <field name="LOAD_DEFAULT"/> @@ -54576,9 +52595,9 @@ <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$LayoutAlgorithm;"/> <method name="values()[Landroid/webkit/WebSettings$LayoutAlgorithm;"/> - <field name="NARROW_COLUMNS" deprecated="29"/> + <field name="NARROW_COLUMNS" deprecated="28"/> <field name="NORMAL"/> - <field name="SINGLE_COLUMN" deprecated="29"/> + <field name="SINGLE_COLUMN" deprecated="28"/> <field name="TEXT_AUTOSIZING" since="19"/> </class> <class name="android/webkit/WebSettings$PluginState" since="8"> @@ -54597,15 +52616,15 @@ <field name="LOW"/> <field name="NORMAL"/> </class> - <class name="android/webkit/WebSettings$TextSize" since="1" deprecated="15"> + <class name="android/webkit/WebSettings$TextSize" since="1" deprecated="16"> <extends name="java/lang/Enum"/> <method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$TextSize;"/> <method name="values()[Landroid/webkit/WebSettings$TextSize;"/> - <field name="LARGER" deprecated="29"/> - <field name="LARGEST" deprecated="29"/> - <field name="NORMAL" deprecated="29"/> - <field name="SMALLER" deprecated="29"/> - <field name="SMALLEST" deprecated="29"/> + <field name="LARGER"/> + <field name="LARGEST"/> + <field name="NORMAL"/> + <field name="SMALLER"/> + <field name="SMALLEST"/> </class> <class name="android/webkit/WebSettings$ZoomDensity" since="7"> <extends name="java/lang/Enum"/> @@ -54617,7 +52636,7 @@ </class> <class name="android/webkit/WebStorage" since="5"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="16"/> + <method name="<init>()V"/> <method name="deleteAllData()V" since="7"/> <method name="deleteOrigin(Ljava/lang/String;)V" since="7"/> <method name="getInstance()Landroid/webkit/WebStorage;" since="7"/> @@ -54628,13 +52647,28 @@ </class> <class name="android/webkit/WebStorage$Origin" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;JJ)V" since="29"/> <method name="getOrigin()Ljava/lang/String;"/> <method name="getQuota()J"/> <method name="getUsage()J"/> </class> <class name="android/webkit/WebStorage$QuotaUpdater" since="5" deprecated="19"> <extends name="java/lang/Object"/> - <method name="updateQuota(J)V" deprecated="29"/> + <method name="updateQuota(J)V"/> + </class> + <class name="android/webkit/WebSyncManager" since="1" deprecated="21" removed="29"> + <extends name="java/lang/Object"/> + <implements name="java/lang/Runnable"/> + <method name="<init>(Landroid/content/Context;Ljava/lang/String;)V"/> + <method name="onSyncInit()V"/> + <method name="resetSync()V"/> + <method name="startSync()V"/> + <method name="stopSync()V"/> + <method name="sync()V"/> + <field name="LOGTAG"/> + <field name="mDataBase"/> + <field name="mHandler"/> </class> <class name="android/webkit/WebView" since="1"> <extends name="android/widget/AbsoluteLayout"/> @@ -54663,13 +52697,13 @@ <method name="createPrintDocumentAdapter()Landroid/print/PrintDocumentAdapter;" since="19" deprecated="21"/> <method name="createPrintDocumentAdapter(Ljava/lang/String;)Landroid/print/PrintDocumentAdapter;" since="21"/> <method name="createWebMessageChannel()[Landroid/webkit/WebMessagePort;" since="23"/> - <method name="debugDump()V" deprecated="15" removed="17"/> + <method name="debugDump()V" deprecated="16" removed="17"/> <method name="destroy()V"/> - <method name="disablePlatformNotifications()V" deprecated="15" removed="17"/> + <method name="disablePlatformNotifications()V" deprecated="16" removed="17"/> <method name="disableWebView()V" since="28"/> <method name="documentHasImages(Landroid/os/Message;)V"/> - <method name="emulateShiftHeld()V" since="8" deprecated="15" removed="17"/> - <method name="enablePlatformNotifications()V" deprecated="15" removed="17"/> + <method name="emulateShiftHeld()V" since="8" deprecated="16" removed="17"/> + <method name="enablePlatformNotifications()V" deprecated="16" removed="17"/> <method name="enableSlowWholeDocumentDraw()V" since="21"/> <method name="evaluateJavascript(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="19"/> <method name="findAddress(Ljava/lang/String;)Ljava/lang/String;" deprecated="28"/> @@ -54695,14 +52729,12 @@ <method name="getTextClassifier()Landroid/view/textclassifier/TextClassifier;" since="27"/> <method name="getTitle()Ljava/lang/String;"/> <method name="getUrl()Ljava/lang/String;"/> - <method name="getVisibleTitleHeight()I" since="11" deprecated="15" removed="17"/> + <method name="getVisibleTitleHeight()I" since="11" deprecated="16" removed="17"/> <method name="getWebChromeClient()Landroid/webkit/WebChromeClient;" since="26"/> <method name="getWebViewClassLoader()Ljava/lang/ClassLoader;" since="28"/> <method name="getWebViewClient()Landroid/webkit/WebViewClient;" since="26"/> <method name="getWebViewLooper()Landroid/os/Looper;" since="28"/> - <method name="getWebViewRenderProcess()Landroid/webkit/WebViewRenderProcess;" since="29"/> - <method name="getWebViewRenderProcessClient()Landroid/webkit/WebViewRenderProcessClient;" since="29"/> - <method name="getZoomControls()Landroid/view/View;" deprecated="15" removed="16"/> + <method name="getZoomControls()Landroid/view/View;" removed="16"/> <method name="goBack()V"/> <method name="goBackOrForward(I)V"/> <method name="goForward()V"/> @@ -54727,11 +52759,11 @@ <method name="removeJavascriptInterface(Ljava/lang/String;)V" since="11"/> <method name="requestFocusNodeHref(Landroid/os/Message;)V"/> <method name="requestImageRef(Landroid/os/Message;)V"/> - <method name="restorePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" deprecated="15" removed="17"/> + <method name="restorePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" deprecated="16" removed="17"/> <method name="restoreState(Landroid/os/Bundle;)Landroid/webkit/WebBackForwardList;"/> <method name="resumeTimers()V"/> <method name="savePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="18"/> - <method name="savePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" deprecated="15" removed="17"/> + <method name="savePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" deprecated="16" removed="17"/> <method name="saveState(Landroid/os/Bundle;)Landroid/webkit/WebBackForwardList;"/> <method name="saveWebArchive(Ljava/lang/String;)V" since="11"/> <method name="saveWebArchive(Ljava/lang/String;ZLandroid/webkit/ValueCallback;)V" since="11"/> @@ -54744,7 +52776,7 @@ <method name="setInitialScale(I)V"/> <method name="setMapTrackballToArrowKeys(Z)V" deprecated="17"/> <method name="setNetworkAvailable(Z)V" since="3"/> - <method name="setPictureListener(Landroid/webkit/WebView$PictureListener;)V" deprecated="15"/> + <method name="setPictureListener(Landroid/webkit/WebView$PictureListener;)V" deprecated="16"/> <method name="setRendererPriorityPolicy(IZ)V" since="26"/> <method name="setSafeBrowsingWhitelist(Ljava/util/List;Landroid/webkit/ValueCallback;)V" since="27"/> <method name="setTextClassifier(Landroid/view/textclassifier/TextClassifier;)V" since="27"/> @@ -54752,8 +52784,6 @@ <method name="setWebChromeClient(Landroid/webkit/WebChromeClient;)V"/> <method name="setWebContentsDebuggingEnabled(Z)V" since="19"/> <method name="setWebViewClient(Landroid/webkit/WebViewClient;)V"/> - <method name="setWebViewRenderProcessClient(Landroid/webkit/WebViewRenderProcessClient;)V" since="29"/> - <method name="setWebViewRenderProcessClient(Ljava/util/concurrent/Executor;Landroid/webkit/WebViewRenderProcessClient;)V" since="29"/> <method name="showFindDialog(Ljava/lang/String;Z)Z" since="11" deprecated="18"/> <method name="startSafeBrowsing(Landroid/content/Context;Landroid/webkit/ValueCallback;)V" since="27"/> <method name="stopLoading()V"/> @@ -54773,13 +52803,15 @@ </class> <class name="android/webkit/WebView$HitTestResult" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" since="16"/> + <method name="<init>(Landroid/webkit/WebView;)V" removed="16"/> <method name="getExtra()Ljava/lang/String;"/> <method name="getType()I"/> - <field name="ANCHOR_TYPE" deprecated="15"/> + <field name="ANCHOR_TYPE" deprecated="16"/> <field name="EDIT_TEXT_TYPE"/> <field name="EMAIL_TYPE"/> <field name="GEO_TYPE"/> - <field name="IMAGE_ANCHOR_TYPE" deprecated="15"/> + <field name="IMAGE_ANCHOR_TYPE" deprecated="16"/> <field name="IMAGE_TYPE"/> <field name="PHONE_TYPE"/> <field name="SRC_ANCHOR_TYPE"/> @@ -54788,7 +52820,7 @@ </class> <class name="android/webkit/WebView$PictureListener" since="1" deprecated="12"> <extends name="java/lang/Object"/> - <method name="onNewPicture(Landroid/webkit/WebView;Landroid/graphics/Picture;)V" deprecated="15"/> + <method name="onNewPicture(Landroid/webkit/WebView;Landroid/graphics/Picture;)V" deprecated="16"/> </class> <class name="android/webkit/WebView$VisualStateCallback" since="23"> <extends name="java/lang/Object"/> @@ -54820,7 +52852,7 @@ <method name="onRenderProcessGone(Landroid/webkit/WebView;Landroid/webkit/RenderProcessGoneDetail;)Z" since="26"/> <method name="onSafeBrowsingHit(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;ILandroid/webkit/SafeBrowsingResponse;)V" since="27"/> <method name="onScaleChanged(Landroid/webkit/WebView;FF)V"/> - <method name="onTooManyRedirects(Landroid/webkit/WebView;Landroid/os/Message;Landroid/os/Message;)V" deprecated="15"/> + <method name="onTooManyRedirects(Landroid/webkit/WebView;Landroid/os/Message;Landroid/os/Message;)V" deprecated="16"/> <method name="onUnhandledInputEvent(Landroid/webkit/WebView;Landroid/view/InputEvent;)V" since="21" removed="24"/> <method name="onUnhandledKeyEvent(Landroid/webkit/WebView;Landroid/view/KeyEvent;)V" deprecated="21"/> <method name="shouldInterceptRequest(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Landroid/webkit/WebResourceResponse;" since="21"/> @@ -54844,7 +52876,6 @@ <field name="ERROR_UNSAFE_RESOURCE" since="26"/> <field name="ERROR_UNSUPPORTED_AUTH_SCHEME" since="5"/> <field name="ERROR_UNSUPPORTED_SCHEME" since="5"/> - <field name="SAFE_BROWSING_THREAT_BILLING" since="29"/> <field name="SAFE_BROWSING_THREAT_MALWARE" since="27"/> <field name="SAFE_BROWSING_THREAT_PHISHING" since="27"/> <field name="SAFE_BROWSING_THREAT_UNKNOWN" since="27"/> @@ -54852,7 +52883,7 @@ </class> <class name="android/webkit/WebViewDatabase" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" since="22" deprecated="29"/> + <method name="<init>()V"/> <method name="clearFormData()V" deprecated="26"/> <method name="clearHttpAuthUsernamePassword()V"/> <method name="clearUsernamePassword()V" deprecated="18"/> @@ -54866,19 +52897,8 @@ </class> <class name="android/webkit/WebViewFragment" since="11" deprecated="28"> <extends name="android/app/Fragment"/> - <method name="<init>()V" deprecated="29"/> - <method name="getWebView()Landroid/webkit/WebView;" deprecated="29"/> - </class> - <class name="android/webkit/WebViewRenderProcess" since="29"> - <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="terminate()Z"/> - </class> - <class name="android/webkit/WebViewRenderProcessClient" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="onRenderProcessResponsive(Landroid/webkit/WebView;Landroid/webkit/WebViewRenderProcess;)V"/> - <method name="onRenderProcessUnresponsive(Landroid/webkit/WebView;Landroid/webkit/WebViewRenderProcess;)V"/> + <method name="getWebView()Landroid/webkit/WebView;"/> </class> <class name="android/widget/AbsListView" since="1"> <extends name="android/widget/AdapterView"/> @@ -54896,7 +52916,6 @@ <method name="deferNotifyDataSetChanged()V" since="14"/> <method name="fling(I)V" since="21"/> <method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/AbsListView$LayoutParams;"/> - <method name="getBottomEdgeEffectColor()I" since="29"/> <method name="getCacheColorHint()I"/> <method name="getCheckedItemCount()I" since="11"/> <method name="getCheckedItemIds()[J" since="11"/> @@ -54909,12 +52928,10 @@ <method name="getListPaddingTop()I"/> <method name="getSelector()Landroid/graphics/drawable/Drawable;"/> <method name="getTextFilter()Ljava/lang/CharSequence;" since="3"/> - <method name="getTopEdgeEffectColor()I" since="29"/> <method name="getTranscriptMode()I"/> <method name="handleDataChanged()V"/> <method name="hasTextFilter()Z"/> <method name="invalidateViews()V"/> - <method name="isDrawSelectorOnTop()Z" since="29"/> <method name="isFastScrollAlwaysVisible()Z" since="11"/> <method name="isFastScrollEnabled()Z" since="3"/> <method name="isInFilterMode()Z"/> @@ -54932,11 +52949,9 @@ <method name="reclaimViews(Ljava/util/List;)V"/> <method name="scrollListBy(I)V" since="19"/> <method name="setAdapter(Landroid/widget/ListAdapter;)V" since="11"/> - <method name="setBottomEdgeEffectColor(I)V" since="29"/> <method name="setCacheColorHint(I)V"/> <method name="setChoiceMode(I)V" since="11"/> <method name="setDrawSelectorOnTop(Z)V"/> - <method name="setEdgeEffectColor(I)V" since="29"/> <method name="setFastScrollAlwaysVisible(Z)V" since="11"/> <method name="setFastScrollEnabled(Z)V" since="3"/> <method name="setFastScrollStyle(I)V" since="21"/> @@ -54955,7 +52970,6 @@ <method name="setSmoothScrollbarEnabled(Z)V" since="3"/> <method name="setStackFromBottom(Z)V"/> <method name="setTextFilterEnabled(Z)V"/> - <method name="setTopEdgeEffectColor(I)V" since="29"/> <method name="setTranscriptMode(I)V"/> <method name="setVelocityScale(F)V" since="11"/> <method name="smoothScrollBy(II)V" since="8"/> @@ -55009,22 +53023,18 @@ <method name="getSplitTrack()Z" since="21"/> <method name="getThumb()Landroid/graphics/drawable/Drawable;" since="16"/> <method name="getThumbOffset()I"/> - <method name="getThumbTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getThumbTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getThumbTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="getTickMark()Landroid/graphics/drawable/Drawable;" since="24"/> - <method name="getTickMarkTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getTickMarkTintList()Landroid/content/res/ColorStateList;" since="24"/> <method name="getTickMarkTintMode()Landroid/graphics/PorterDuff$Mode;" since="24"/> <method name="setKeyProgressIncrement(I)V" since="3"/> <method name="setSplitTrack(Z)V" since="21"/> <method name="setThumb(Landroid/graphics/drawable/Drawable;)V"/> <method name="setThumbOffset(I)V"/> - <method name="setThumbTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setThumbTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setThumbTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setTickMark(Landroid/graphics/drawable/Drawable;)V" since="24"/> - <method name="setTickMarkTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setTickMarkTintList(Landroid/content/res/ColorStateList;)V" since="24"/> <method name="setTickMarkTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="24"/> </class> @@ -55041,19 +53051,19 @@ </class> <class name="android/widget/AbsoluteLayout" since="1" deprecated="3"> <extends name="android/view/ViewGroup"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> </class> - <class name="android/widget/AbsoluteLayout$LayoutParams" since="1" deprecated="29"> + <class name="android/widget/AbsoluteLayout$LayoutParams" since="1"> <extends name="android/view/ViewGroup$LayoutParams"/> - <method name="<init>(IIII)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/view/ViewGroup$LayoutParams;)V" deprecated="29"/> - <method name="debug(Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <field name="x" deprecated="29"/> - <field name="y" deprecated="29"/> + <method name="<init>(IIII)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/view/ViewGroup$LayoutParams;)V"/> + <method name="debug(Ljava/lang/String;)Ljava/lang/String;"/> + <field name="x"/> + <field name="y"/> </class> <class name="android/widget/ActionMenuView" since="21"> <extends name="android/widget/LinearLayout"/> @@ -55211,10 +53221,10 @@ </class> <class name="android/widget/AnalogClock" since="1" deprecated="23"> <extends name="android/view/View"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> </class> <class name="android/widget/ArrayAdapter" since="1"> <extends name="android/widget/BaseAdapter"/> @@ -55260,9 +53270,8 @@ <method name="getDropDownVerticalOffset()I" since="5"/> <method name="getDropDownWidth()I" since="3"/> <method name="getFilter()Landroid/widget/Filter;"/> - <method name="getInputMethodMode()I" since="29"/> - <method name="getItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" deprecated="15"/> - <method name="getItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" deprecated="15"/> + <method name="getItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" deprecated="16"/> + <method name="getItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" deprecated="16"/> <method name="getListSelection()I" since="3"/> <method name="getOnItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" since="3"/> <method name="getOnItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" since="3"/> @@ -55273,7 +53282,6 @@ <method name="performCompletion()V"/> <method name="performFiltering(Ljava/lang/CharSequence;I)V"/> <method name="performValidation()V"/> - <method name="refreshAutoCompleteResults()V" since="29"/> <method name="replaceText(Ljava/lang/CharSequence;)V"/> <method name="setAdapter(Landroid/widget/ListAdapter;)V"/> <method name="setCompletionHint(Ljava/lang/CharSequence;)V"/> @@ -55284,7 +53292,6 @@ <method name="setDropDownHorizontalOffset(I)V" since="5"/> <method name="setDropDownVerticalOffset(I)V" since="5"/> <method name="setDropDownWidth(I)V" since="3"/> - <method name="setInputMethodMode(I)V" since="29"/> <method name="setListSelection(I)V" since="3"/> <method name="setOnDismissListener(Landroid/widget/AutoCompleteTextView$OnDismissListener;)V" since="17"/> <method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V"/> @@ -55390,13 +53397,11 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> <method name="getCheckMarkDrawable()Landroid/graphics/drawable/Drawable;" since="16"/> - <method name="getCheckMarkTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getCheckMarkTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getCheckMarkTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="onPaddingChanged(I)V" since="16" removed="17"/> <method name="setCheckMarkDrawable(I)V"/> <method name="setCheckMarkDrawable(Landroid/graphics/drawable/Drawable;)V"/> - <method name="setCheckMarkTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setCheckMarkTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setCheckMarkTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> </class> @@ -55430,12 +53435,10 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> <method name="getButtonDrawable()Landroid/graphics/drawable/Drawable;" since="23"/> - <method name="getButtonTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getButtonTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getButtonTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="setButtonDrawable(I)V"/> <method name="setButtonDrawable(Landroid/graphics/drawable/Drawable;)V"/> - <method name="setButtonTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setButtonTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setButtonTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V"/> @@ -55448,7 +53451,7 @@ <extends name="android/widget/BaseAdapter"/> <implements name="android/widget/Filterable"/> <implements name="android/widget/ThemedSpinnerAdapter" since="23"/> - <method name="<init>(Landroid/content/Context;Landroid/database/Cursor;)V" deprecated="15"/> + <method name="<init>(Landroid/content/Context;Landroid/database/Cursor;)V" deprecated="16"/> <method name="<init>(Landroid/content/Context;Landroid/database/Cursor;I)V" since="11"/> <method name="<init>(Landroid/content/Context;Landroid/database/Cursor;Z)V"/> <method name="bindView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;)V"/> @@ -55456,14 +53459,14 @@ <method name="convertToString(Landroid/database/Cursor;)Ljava/lang/CharSequence;"/> <method name="getCursor()Landroid/database/Cursor;"/> <method name="getFilterQueryProvider()Landroid/widget/FilterQueryProvider;"/> - <method name="init(Landroid/content/Context;Landroid/database/Cursor;Z)V" deprecated="15"/> + <method name="init(Landroid/content/Context;Landroid/database/Cursor;Z)V" deprecated="16"/> <method name="newDropDownView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;"/> <method name="newView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;"/> <method name="onContentChanged()V" since="3"/> <method name="runQueryOnBackgroundThread(Ljava/lang/CharSequence;)Landroid/database/Cursor;"/> <method name="setFilterQueryProvider(Landroid/widget/FilterQueryProvider;)V"/> <method name="swapCursor(Landroid/database/Cursor;)Landroid/database/Cursor;" since="11"/> - <field name="FLAG_AUTO_REQUERY" since="11" deprecated="15"/> + <field name="FLAG_AUTO_REQUERY" since="11" deprecated="16"/> <field name="FLAG_REGISTER_CONTENT_OBSERVER" since="11"/> </class> <class name="android/widget/CursorTreeAdapter" since="1"> @@ -55518,38 +53521,37 @@ </class> <class name="android/widget/DialerFilter" since="1" deprecated="26"> <extends name="android/widget/RelativeLayout"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="append(Ljava/lang/String;)V" deprecated="29"/> - <method name="clearText()V" deprecated="29"/> - <method name="getDigits()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getFilterText()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getLetters()Ljava/lang/CharSequence;" deprecated="29"/> - <method name="getMode()I" deprecated="29"/> - <method name="isQwertyKeyboard()Z" deprecated="29"/> - <method name="onModeChange(II)V" deprecated="29"/> - <method name="removeFilterWatcher(Landroid/text/TextWatcher;)V" deprecated="29"/> - <method name="setDigitsWatcher(Landroid/text/TextWatcher;)V" deprecated="29"/> - <method name="setFilterWatcher(Landroid/text/TextWatcher;)V" deprecated="29"/> - <method name="setLettersWatcher(Landroid/text/TextWatcher;)V" deprecated="29"/> - <method name="setMode(I)V" deprecated="29"/> - <field name="DIGITS_AND_LETTERS" deprecated="29"/> - <field name="DIGITS_AND_LETTERS_NO_DIGITS" deprecated="29"/> - <field name="DIGITS_AND_LETTERS_NO_LETTERS" deprecated="29"/> - <field name="DIGITS_ONLY" deprecated="29"/> - <field name="LETTERS_ONLY" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="append(Ljava/lang/String;)V"/> + <method name="clearText()V"/> + <method name="getDigits()Ljava/lang/CharSequence;"/> + <method name="getFilterText()Ljava/lang/CharSequence;"/> + <method name="getLetters()Ljava/lang/CharSequence;"/> + <method name="getMode()I"/> + <method name="isQwertyKeyboard()Z"/> + <method name="onModeChange(II)V"/> + <method name="removeFilterWatcher(Landroid/text/TextWatcher;)V"/> + <method name="setDigitsWatcher(Landroid/text/TextWatcher;)V"/> + <method name="setFilterWatcher(Landroid/text/TextWatcher;)V"/> + <method name="setLettersWatcher(Landroid/text/TextWatcher;)V"/> + <method name="setMode(I)V"/> + <field name="DIGITS_AND_LETTERS"/> + <field name="DIGITS_AND_LETTERS_NO_DIGITS"/> + <field name="DIGITS_AND_LETTERS_NO_LETTERS"/> + <field name="DIGITS_ONLY"/> + <field name="LETTERS_ONLY"/> </class> <class name="android/widget/DigitalClock" since="1" deprecated="17"> <extends name="android/widget/TextView"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> </class> <class name="android/widget/EdgeEffect" since="14"> <extends name="java/lang/Object"/> <method name="<init>(Landroid/content/Context;)V"/> <method name="draw(Landroid/graphics/Canvas;)Z"/> <method name="finish()V"/> - <method name="getBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getColor()I" since="21"/> <method name="getMaxHeight()I" since="21"/> <method name="isFinished()Z"/> @@ -55557,10 +53559,8 @@ <method name="onPull(F)V"/> <method name="onPull(FF)V" since="21"/> <method name="onRelease()V"/> - <method name="setBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setColor(I)V" since="21"/> <method name="setSize(II)V"/> - <field name="DEFAULT_BLEND_MODE" since="29"/> </class> <class name="android/widget/EditText" since="1"> <extends name="android/widget/TextView"/> @@ -55694,7 +53694,7 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> <method name="generateDefaultLayoutParams()Landroid/widget/FrameLayout$LayoutParams;"/> <method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/FrameLayout$LayoutParams;"/> - <method name="getConsiderGoneChildrenWhenMeasuring()Z" deprecated="15"/> + <method name="getConsiderGoneChildrenWhenMeasuring()Z" deprecated="16"/> <method name="getForeground()Landroid/graphics/drawable/Drawable;" removed="23"/> <method name="getForegroundGravity()I" since="16" removed="23"/> <method name="getForegroundTintList()Landroid/content/res/ColorStateList;" since="21" removed="23"/> @@ -55720,21 +53720,21 @@ <class name="android/widget/Gallery" since="1" deprecated="16"> <extends name="android/widget/AbsSpinner"/> <implements name="android/view/GestureDetector$OnGestureListener"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="setAnimationDuration(I)V" deprecated="29"/> - <method name="setCallbackDuringFling(Z)V" deprecated="29"/> - <method name="setGravity(I)V" deprecated="29"/> - <method name="setSpacing(I)V" deprecated="29"/> - <method name="setUnselectedAlpha(F)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="setAnimationDuration(I)V"/> + <method name="setCallbackDuringFling(Z)V"/> + <method name="setGravity(I)V"/> + <method name="setSpacing(I)V"/> + <method name="setUnselectedAlpha(F)V"/> </class> - <class name="android/widget/Gallery$LayoutParams" since="1" deprecated="29"> + <class name="android/widget/Gallery$LayoutParams" since="1"> <extends name="android/view/ViewGroup$LayoutParams"/> - <method name="<init>(II)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/view/ViewGroup$LayoutParams;)V" deprecated="29"/> + <method name="<init>(II)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/view/ViewGroup$LayoutParams;)V"/> </class> <class name="android/widget/GridLayout" since="14"> <extends name="android/view/ViewGroup"/> @@ -55784,6 +53784,7 @@ </class> <class name="android/widget/GridLayout$Alignment" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> </class> <class name="android/widget/GridLayout$LayoutParams" since="14"> <extends name="android/view/ViewGroup$MarginLayoutParams"/> @@ -55799,6 +53800,8 @@ </class> <class name="android/widget/GridLayout$Spec" since="14"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ZIILandroid/widget/GridLayout$Alignment;F)V" since="29"/> </class> <class name="android/widget/GridView" since="1"> <extends name="android/widget/AbsListView"/> @@ -55857,16 +53860,11 @@ <method name="executeKeyEvent(Landroid/view/KeyEvent;)Z"/> <method name="fling(I)V"/> <method name="fullScroll(I)Z"/> - <method name="getLeftEdgeEffectColor()I" since="29"/> <method name="getMaxScrollAmount()I"/> - <method name="getRightEdgeEffectColor()I" since="29"/> <method name="isFillViewport()Z"/> <method name="isSmoothScrollingEnabled()Z"/> <method name="pageScroll(I)Z"/> - <method name="setEdgeEffectColor(I)V" since="29"/> <method name="setFillViewport(Z)V"/> - <method name="setLeftEdgeEffectColor(I)V" since="29"/> - <method name="setRightEdgeEffectColor(I)V" since="29"/> <method name="setSmoothScrollingEnabled(Z)V"/> <method name="smoothScrollBy(II)V"/> <method name="smoothScrollTo(II)V"/> @@ -55892,7 +53890,6 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> - <method name="animateTransform(Landroid/graphics/Matrix;)V" since="29"/> <method name="clearColorFilter()V"/> <method name="getAdjustViewBounds()Z" since="16"/> <method name="getBaselineAlignBottom()Z" since="11"/> @@ -55901,7 +53898,6 @@ <method name="getDrawable()Landroid/graphics/drawable/Drawable;"/> <method name="getImageAlpha()I" since="16"/> <method name="getImageMatrix()Landroid/graphics/Matrix;"/> - <method name="getImageTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getImageTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getImageTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="getMaxHeight()I" since="16"/> @@ -55924,7 +53920,6 @@ <method name="setImageMatrix(Landroid/graphics/Matrix;)V"/> <method name="setImageResource(I)V"/> <method name="setImageState([IZ)V"/> - <method name="setImageTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setImageTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setImageTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setImageURI(Landroid/net/Uri;)V"/> @@ -56011,7 +54006,6 @@ <method name="getAnchorView()Landroid/view/View;"/> <method name="getAnimationStyle()I"/> <method name="getBackground()Landroid/graphics/drawable/Drawable;"/> - <method name="getEpicenterBounds()Landroid/graphics/Rect;" since="29"/> <method name="getHeight()I"/> <method name="getHorizontalOffset()I"/> <method name="getInputMethodMode()I"/> @@ -56038,7 +54032,6 @@ <method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V"/> <method name="setContentWidth(I)V"/> <method name="setDropDownGravity(I)V" since="19"/> - <method name="setEpicenterBounds(Landroid/graphics/Rect;)V" since="29"/> <method name="setHeight(I)V"/> <method name="setHorizontalOffset(I)V"/> <method name="setInputMethodMode(I)V"/> @@ -56079,7 +54072,7 @@ <method name="findViewTraversal(I)Landroid/view/View;" removed="26"/> <method name="findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;" removed="26"/> <method name="getAdapter()Landroid/widget/ListAdapter;"/> - <method name="getCheckItemIds()[J" since="4" deprecated="15"/> + <method name="getCheckItemIds()[J" since="4" deprecated="16"/> <method name="getCheckedItemIds()[J" since="8" removed="11"/> <method name="getCheckedItemPosition()I" removed="11"/> <method name="getCheckedItemPositions()Landroid/util/SparseBooleanArray;" removed="11"/> @@ -56121,40 +54114,13 @@ </class> <class name="android/widget/Magnifier" since="28"> <extends name="java/lang/Object"/> - <method name="<init>(Landroid/view/View;)V" deprecated="29"/> + <method name="<init>(Landroid/view/View;)V"/> <method name="dismiss()V"/> - <method name="getCornerRadius()F" since="29"/> - <method name="getDefaultHorizontalSourceToMagnifierOffset()I" since="29"/> - <method name="getDefaultVerticalSourceToMagnifierOffset()I" since="29"/> - <method name="getElevation()F" since="29"/> <method name="getHeight()I"/> - <method name="getOverlay()Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getPosition()Landroid/graphics/Point;" since="29"/> - <method name="getSourceHeight()I" since="29"/> - <method name="getSourcePosition()Landroid/graphics/Point;" since="29"/> - <method name="getSourceWidth()I" since="29"/> <method name="getWidth()I"/> <method name="getZoom()F"/> - <method name="isClippingEnabled()Z" since="29"/> - <method name="setZoom(F)V" since="29"/> <method name="show(FF)V"/> - <method name="show(FFFF)V" since="29"/> <method name="update()V"/> - <field name="SOURCE_BOUND_MAX_IN_SURFACE" since="29"/> - <field name="SOURCE_BOUND_MAX_VISIBLE" since="29"/> - </class> - <class name="android/widget/Magnifier$Builder" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>(Landroid/view/View;)V"/> - <method name="build()Landroid/widget/Magnifier;"/> - <method name="setClippingEnabled(Z)Landroid/widget/Magnifier$Builder;"/> - <method name="setCornerRadius(F)Landroid/widget/Magnifier$Builder;"/> - <method name="setDefaultSourceToMagnifierOffset(II)Landroid/widget/Magnifier$Builder;"/> - <method name="setElevation(F)Landroid/widget/Magnifier$Builder;"/> - <method name="setInitialZoom(F)Landroid/widget/Magnifier$Builder;"/> - <method name="setOverlay(Landroid/graphics/drawable/Drawable;)Landroid/widget/Magnifier$Builder;"/> - <method name="setSize(II)Landroid/widget/Magnifier$Builder;"/> - <method name="setSourceBounds(IIII)Landroid/widget/Magnifier$Builder;"/> </class> <class name="android/widget/MediaController" since="1"> <extends name="android/widget/FrameLayout"/> @@ -56212,9 +54178,6 @@ <method name="getDisplayedValues()[Ljava/lang/String;"/> <method name="getMaxValue()I"/> <method name="getMinValue()I"/> - <method name="getSelectionDividerHeight()I" since="29"/> - <method name="getTextColor()I" since="29"/> - <method name="getTextSize()F" since="29"/> <method name="getValue()I"/> <method name="getWrapSelectorWheel()Z"/> <method name="setDisplayedValues([Ljava/lang/String;)V"/> @@ -56224,9 +54187,6 @@ <method name="setOnLongPressUpdateInterval(J)V"/> <method name="setOnScrollListener(Landroid/widget/NumberPicker$OnScrollListener;)V"/> <method name="setOnValueChangedListener(Landroid/widget/NumberPicker$OnValueChangeListener;)V"/> - <method name="setSelectionDividerHeight(I)V" since="29"/> - <method name="setTextColor(I)V" since="29"/> - <method name="setTextSize(F)V" since="29"/> <method name="setValue(I)V"/> <method name="setWrapSelectorWheel(Z)V"/> </class> @@ -56283,7 +54243,6 @@ <method name="getMenu()Landroid/view/Menu;"/> <method name="getMenuInflater()Landroid/view/MenuInflater;"/> <method name="inflate(I)V" since="14"/> - <method name="setForceShowIcon(Z)V" since="29"/> <method name="setGravity(I)V" since="23"/> <method name="setOnDismissListener(Landroid/widget/PopupMenu$OnDismissListener;)V" since="14"/> <method name="setOnMenuItemClickListener(Landroid/widget/PopupMenu$OnMenuItemClickListener;)V"/> @@ -56314,7 +54273,6 @@ <method name="getContentView()Landroid/view/View;"/> <method name="getElevation()F" since="21"/> <method name="getEnterTransition()Landroid/transition/Transition;" since="24"/> - <method name="getEpicenterBounds()Landroid/graphics/Rect;" since="29"/> <method name="getExitTransition()Landroid/transition/Transition;" since="24"/> <method name="getHeight()I"/> <method name="getInputMethodMode()I" since="3"/> @@ -56327,14 +54285,11 @@ <method name="getWindowLayoutType()I" since="23"/> <method name="isAboveAnchor()Z" since="3"/> <method name="isAttachedInDecor()Z" since="22"/> - <method name="isClippedToScreen()Z" since="29"/> <method name="isClippingEnabled()Z" since="3"/> <method name="isFocusable()Z"/> - <method name="isLaidOutInScreen()Z" since="29"/> <method name="isOutsideTouchable()Z" since="3"/> <method name="isShowing()Z"/> <method name="isSplitTouchEnabled()Z" since="11"/> - <method name="isTouchModal()Z" since="29"/> <method name="isTouchable()Z" since="3"/> <method name="setAnimationStyle(I)V"/> <method name="setAttachedInDecor(Z)V" since="22"/> @@ -56343,21 +54298,17 @@ <method name="setContentView(Landroid/view/View;)V"/> <method name="setElevation(F)V" since="21"/> <method name="setEnterTransition(Landroid/transition/Transition;)V" since="23"/> - <method name="setEpicenterBounds(Landroid/graphics/Rect;)V" since="29"/> <method name="setExitTransition(Landroid/transition/Transition;)V" since="23"/> <method name="setFocusable(Z)V"/> <method name="setHeight(I)V"/> <method name="setIgnoreCheekPress()V"/> <method name="setInputMethodMode(I)V" since="3"/> - <method name="setIsClippedToScreen(Z)V" since="29"/> - <method name="setIsLaidOutInScreen(Z)V" since="29"/> <method name="setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V"/> <method name="setOutsideTouchable(Z)V" since="3"/> <method name="setOverlapAnchor(Z)V" since="23"/> <method name="setSoftInputMode(I)V" since="4"/> <method name="setSplitTouchEnabled(Z)V" since="11"/> <method name="setTouchInterceptor(Landroid/view/View$OnTouchListener;)V" since="3"/> - <method name="setTouchModal(Z)V" since="29"/> <method name="setTouchable(Z)V" since="3"/> <method name="setWidth(I)V"/> <method name="setWindowLayoutMode(II)V" since="3" deprecated="23"/> @@ -56386,28 +54337,19 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> - <method name="getCurrentDrawable()Landroid/graphics/drawable/Drawable;" since="29"/> <method name="getIndeterminateDrawable()Landroid/graphics/drawable/Drawable;"/> - <method name="getIndeterminateTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getIndeterminateTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getIndeterminateTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="getInterpolator()Landroid/view/animation/Interpolator;"/> <method name="getMax()I"/> - <method name="getMaxHeight()I" since="29"/> - <method name="getMaxWidth()I" since="29"/> <method name="getMin()I" since="26"/> - <method name="getMinHeight()I" since="29"/> - <method name="getMinWidth()I" since="29"/> <method name="getProgress()I"/> - <method name="getProgressBackgroundTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getProgressBackgroundTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getProgressBackgroundTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="getProgressDrawable()Landroid/graphics/drawable/Drawable;"/> - <method name="getProgressTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getProgressTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getProgressTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="getSecondaryProgress()I"/> - <method name="getSecondaryProgressTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getSecondaryProgressTintList()Landroid/content/res/ColorStateList;" since="21"/> <method name="getSecondaryProgressTintMode()Landroid/graphics/PorterDuff$Mode;" since="21"/> <method name="incrementProgressBy(I)V"/> @@ -56417,29 +54359,21 @@ <method name="setIndeterminate(Z)V"/> <method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V"/> <method name="setIndeterminateDrawableTiled(Landroid/graphics/drawable/Drawable;)V" since="21"/> - <method name="setIndeterminateTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setIndeterminateTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setIndeterminateTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setInterpolator(Landroid/content/Context;I)V"/> <method name="setInterpolator(Landroid/view/animation/Interpolator;)V"/> <method name="setMax(I)V"/> - <method name="setMaxHeight(I)V" since="29"/> - <method name="setMaxWidth(I)V" since="29"/> <method name="setMin(I)V" since="26"/> - <method name="setMinHeight(I)V" since="29"/> - <method name="setMinWidth(I)V" since="29"/> <method name="setProgress(I)V"/> <method name="setProgress(IZ)V" since="24"/> - <method name="setProgressBackgroundTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setProgressBackgroundTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setProgressBackgroundTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V"/> <method name="setProgressDrawableTiled(Landroid/graphics/drawable/Drawable;)V" since="21"/> - <method name="setProgressTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setProgressTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setProgressTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> <method name="setSecondaryProgress(I)V"/> - <method name="setSecondaryProgressTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setSecondaryProgressTintList(Landroid/content/res/ColorStateList;)V" since="21"/> <method name="setSecondaryProgressTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="21"/> </class> @@ -56520,7 +54454,6 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> <method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams;"/> <method name="getGravity()I" since="16"/> - <method name="getIgnoreGravity()I" since="29"/> <method name="setGravity(I)V"/> <method name="setHorizontalGravity(I)V"/> <method name="setIgnoreGravity(I)V"/> @@ -56602,15 +54535,13 @@ <method name="setInt(ILjava/lang/String;I)V" since="3"/> <method name="setIntent(ILjava/lang/String;Landroid/content/Intent;)V" since="11"/> <method name="setLabelFor(II)V" since="17"/> - <method name="setLightBackgroundLayoutId(I)V" since="29"/> <method name="setLong(ILjava/lang/String;J)V" since="3"/> <method name="setOnClickFillInIntent(ILandroid/content/Intent;)V" since="11"/> <method name="setOnClickPendingIntent(ILandroid/app/PendingIntent;)V" since="3"/> - <method name="setOnClickResponse(ILandroid/widget/RemoteViews$RemoteResponse;)V" since="29"/> <method name="setPendingIntentTemplate(ILandroid/app/PendingIntent;)V" since="11"/> <method name="setProgressBar(IIIZ)V"/> <method name="setRelativeScrollPosition(II)V" since="11"/> - <method name="setRemoteAdapter(IILandroid/content/Intent;)V" since="11" deprecated="15"/> + <method name="setRemoteAdapter(IILandroid/content/Intent;)V" since="11" deprecated="16"/> <method name="setRemoteAdapter(ILandroid/content/Intent;)V" since="14"/> <method name="setScrollPosition(II)V" since="11"/> <method name="setShort(ILjava/lang/String;S)V" since="3"/> @@ -56626,20 +54557,12 @@ <method name="showNext(I)V" since="11"/> <method name="showPrevious(I)V" since="11"/> <field name="CREATOR"/> - <field name="EXTRA_SHARED_ELEMENT_BOUNDS" since="29"/> </class> <class name="android/widget/RemoteViews$ActionException" since="1"> <extends name="java/lang/RuntimeException"/> <method name="<init>(Ljava/lang/Exception;)V" since="3"/> <method name="<init>(Ljava/lang/String;)V"/> </class> - <class name="android/widget/RemoteViews$RemoteResponse" since="29"> - <extends name="java/lang/Object"/> - <method name="<init>()V"/> - <method name="addSharedElement(ILjava/lang/String;)Landroid/widget/RemoteViews$RemoteResponse;"/> - <method name="fromFillInIntent(Landroid/content/Intent;)Landroid/widget/RemoteViews$RemoteResponse;"/> - <method name="fromPendingIntent(Landroid/app/PendingIntent;)Landroid/widget/RemoteViews$RemoteResponse;"/> - </class> <class name="android/widget/RemoteViews$RemoteView" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/annotation/Annotation"/> @@ -56663,7 +54586,7 @@ </class> <class name="android/widget/ResourceCursorAdapter" since="1"> <extends name="android/widget/CursorAdapter"/> - <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;)V" deprecated="15"/> + <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;)V" deprecated="16"/> <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;I)V" since="11"/> <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;Z)V" since="3"/> <method name="setDropDownViewResource(I)V"/> @@ -56686,18 +54609,12 @@ <method name="executeKeyEvent(Landroid/view/KeyEvent;)Z"/> <method name="fling(I)V"/> <method name="fullScroll(I)Z"/> - <method name="getBottomEdgeEffectColor()I" since="29"/> <method name="getMaxScrollAmount()I"/> - <method name="getTopEdgeEffectColor()I" since="29"/> <method name="isFillViewport()Z"/> <method name="isSmoothScrollingEnabled()Z"/> <method name="pageScroll(I)Z"/> - <method name="scrollToDescendant(Landroid/view/View;)V" since="29"/> - <method name="setBottomEdgeEffectColor(I)V" since="29"/> - <method name="setEdgeEffectColor(I)V" since="29"/> <method name="setFillViewport(Z)V"/> <method name="setSmoothScrollingEnabled(Z)V"/> - <method name="setTopEdgeEffectColor(I)V" since="29"/> <method name="smoothScrollBy(II)V"/> <method name="smoothScrollTo(II)V"/> </class> @@ -56740,9 +54657,8 @@ <method name="getQuery()Ljava/lang/CharSequence;"/> <method name="getQueryHint()Ljava/lang/CharSequence;" since="16"/> <method name="getSuggestionsAdapter()Landroid/widget/CursorAdapter;"/> - <method name="isIconfiedByDefault()Z" deprecated="29"/> + <method name="isIconfiedByDefault()Z"/> <method name="isIconified()Z"/> - <method name="isIconifiedByDefault()Z" since="29"/> <method name="isQueryRefinementEnabled()Z"/> <method name="isSubmitButtonEnabled()Z"/> <method name="setIconified(Z)V"/> @@ -56826,7 +54742,7 @@ </class> <class name="android/widget/SimpleCursorAdapter" since="1"> <extends name="android/widget/ResourceCursorAdapter"/> - <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[I)V" deprecated="15"/> + <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[I)V" deprecated="16"/> <method name="<init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[II)V" since="11"/> <method name="changeCursorAndColumns(Landroid/database/Cursor;[Ljava/lang/String;[I)V" since="3"/> <method name="getCursorToStringConverter()Landroid/widget/SimpleCursorAdapter$CursorToStringConverter;"/> @@ -56870,39 +54786,39 @@ </class> <class name="android/widget/SlidingDrawer" since="3" deprecated="17"> <extends name="android/view/ViewGroup"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="animateClose()V" deprecated="29"/> - <method name="animateOpen()V" deprecated="29"/> - <method name="animateToggle()V" deprecated="29"/> - <method name="close()V" deprecated="29"/> - <method name="getContent()Landroid/view/View;" deprecated="29"/> - <method name="getHandle()Landroid/view/View;" deprecated="29"/> - <method name="isMoving()Z" deprecated="29"/> - <method name="isOpened()Z" deprecated="29"/> - <method name="lock()V" deprecated="29"/> - <method name="open()V" deprecated="29"/> - <method name="setOnDrawerCloseListener(Landroid/widget/SlidingDrawer$OnDrawerCloseListener;)V" deprecated="29"/> - <method name="setOnDrawerOpenListener(Landroid/widget/SlidingDrawer$OnDrawerOpenListener;)V" deprecated="29"/> - <method name="setOnDrawerScrollListener(Landroid/widget/SlidingDrawer$OnDrawerScrollListener;)V" deprecated="29"/> - <method name="toggle()V" deprecated="29"/> - <method name="unlock()V" deprecated="29"/> - <field name="ORIENTATION_HORIZONTAL" deprecated="29"/> - <field name="ORIENTATION_VERTICAL" deprecated="29"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="animateClose()V"/> + <method name="animateOpen()V"/> + <method name="animateToggle()V"/> + <method name="close()V"/> + <method name="getContent()Landroid/view/View;"/> + <method name="getHandle()Landroid/view/View;"/> + <method name="isMoving()Z"/> + <method name="isOpened()Z"/> + <method name="lock()V"/> + <method name="open()V"/> + <method name="setOnDrawerCloseListener(Landroid/widget/SlidingDrawer$OnDrawerCloseListener;)V"/> + <method name="setOnDrawerOpenListener(Landroid/widget/SlidingDrawer$OnDrawerOpenListener;)V"/> + <method name="setOnDrawerScrollListener(Landroid/widget/SlidingDrawer$OnDrawerScrollListener;)V"/> + <method name="toggle()V"/> + <method name="unlock()V"/> + <field name="ORIENTATION_HORIZONTAL"/> + <field name="ORIENTATION_VERTICAL"/> </class> - <class name="android/widget/SlidingDrawer$OnDrawerCloseListener" since="3" deprecated="29"> + <class name="android/widget/SlidingDrawer$OnDrawerCloseListener" since="3"> <extends name="java/lang/Object"/> - <method name="onDrawerClosed()V" deprecated="29"/> + <method name="onDrawerClosed()V"/> </class> - <class name="android/widget/SlidingDrawer$OnDrawerOpenListener" since="3" deprecated="29"> + <class name="android/widget/SlidingDrawer$OnDrawerOpenListener" since="3"> <extends name="java/lang/Object"/> - <method name="onDrawerOpened()V" deprecated="29"/> + <method name="onDrawerOpened()V"/> </class> - <class name="android/widget/SlidingDrawer$OnDrawerScrollListener" since="3" deprecated="29"> + <class name="android/widget/SlidingDrawer$OnDrawerScrollListener" since="3"> <extends name="java/lang/Object"/> - <method name="onScrollEnded()V" deprecated="29"/> - <method name="onScrollStarted()V" deprecated="29"/> + <method name="onScrollEnded()V"/> + <method name="onScrollStarted()V"/> </class> <class name="android/widget/Space" since="14"> <extends name="android/view/View"/> @@ -56965,11 +54881,9 @@ <method name="getTextOn()Ljava/lang/CharSequence;"/> <method name="getThumbDrawable()Landroid/graphics/drawable/Drawable;" since="16"/> <method name="getThumbTextPadding()I" since="16"/> - <method name="getThumbTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getThumbTintList()Landroid/content/res/ColorStateList;" since="23"/> <method name="getThumbTintMode()Landroid/graphics/PorterDuff$Mode;" since="23"/> <method name="getTrackDrawable()Landroid/graphics/drawable/Drawable;" since="16"/> - <method name="getTrackTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getTrackTintList()Landroid/content/res/ColorStateList;" since="23"/> <method name="getTrackTintMode()Landroid/graphics/PorterDuff$Mode;" since="23"/> <method name="setShowText(Z)V" since="21"/> @@ -56984,12 +54898,10 @@ <method name="setThumbDrawable(Landroid/graphics/drawable/Drawable;)V" since="16"/> <method name="setThumbResource(I)V" since="16"/> <method name="setThumbTextPadding(I)V" since="16"/> - <method name="setThumbTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setThumbTintList(Landroid/content/res/ColorStateList;)V" since="23"/> <method name="setThumbTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="23"/> <method name="setTrackDrawable(Landroid/graphics/drawable/Drawable;)V" since="16"/> <method name="setTrackResource(I)V" since="16"/> - <method name="setTrackTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setTrackTintList(Landroid/content/res/ColorStateList;)V" since="23"/> <method name="setTrackTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="23"/> </class> @@ -57025,6 +54937,8 @@ </class> <class name="android/widget/TabHost$TabSpec" since="1"> <extends name="java/lang/Object"/> + <method name="<init>(Landroid/widget/TabHost;)V" removed="29"/> + <method name="<init>(Landroid/widget/TabHost;Ljava/lang/String;)V" since="29"/> <method name="getTag()Ljava/lang/String;" since="4"/> <method name="setContent(I)Landroid/widget/TabHost$TabSpec;"/> <method name="setContent(Landroid/content/Intent;)Landroid/widget/TabHost$TabSpec;"/> @@ -57148,7 +55062,6 @@ <method name="getAutoSizeTextType()I" since="26"/> <method name="getBreakStrategy()I" since="23"/> <method name="getCompoundDrawablePadding()I"/> - <method name="getCompoundDrawableTintBlendMode()Landroid/graphics/BlendMode;" since="29"/> <method name="getCompoundDrawableTintList()Landroid/content/res/ColorStateList;" since="23"/> <method name="getCompoundDrawableTintMode()Landroid/graphics/PorterDuff$Mode;" since="23"/> <method name="getCompoundDrawables()[Landroid/graphics/drawable/Drawable;"/> @@ -57225,15 +55138,10 @@ <method name="getTextColor(Landroid/content/Context;Landroid/content/res/TypedArray;I)I" removed="21"/> <method name="getTextColors()Landroid/content/res/ColorStateList;"/> <method name="getTextColors(Landroid/content/Context;Landroid/content/res/TypedArray;)Landroid/content/res/ColorStateList;" removed="21"/> - <method name="getTextCursorDrawable()Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;" since="29"/> <method name="getTextLocale()Ljava/util/Locale;" since="17"/> <method name="getTextLocales()Landroid/os/LocaleList;" since="24"/> <method name="getTextMetricsParams()Landroid/text/PrecomputedText$Params;" since="28"/> <method name="getTextScaleX()F"/> - <method name="getTextSelectHandle()Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getTextSelectHandleLeft()Landroid/graphics/drawable/Drawable;" since="29"/> - <method name="getTextSelectHandleRight()Landroid/graphics/drawable/Drawable;" since="29"/> <method name="getTextSize()F"/> <method name="getTotalPaddingBottom()I"/> <method name="getTotalPaddingEnd()I" since="17"/> @@ -57249,9 +55157,7 @@ <method name="isCursorVisible()Z" since="16"/> <method name="isElegantTextHeight()Z" since="28"/> <method name="isFallbackLineSpacing()Z" since="28"/> - <method name="isHorizontallyScrollable()Z" since="29"/> <method name="isInputMethodTarget()Z" since="3"/> - <method name="isSingleLine()Z" since="29"/> <method name="isSuggestionsEnabled()Z" since="14"/> <method name="isTextSelectable()Z" since="11"/> <method name="length()I"/> @@ -57277,7 +55183,6 @@ <method name="setAutoSizeTextTypeWithDefaults(I)V" since="26"/> <method name="setBreakStrategy(I)V" since="23"/> <method name="setCompoundDrawablePadding(I)V"/> - <method name="setCompoundDrawableTintBlendMode(Landroid/graphics/BlendMode;)V" since="29"/> <method name="setCompoundDrawableTintList(Landroid/content/res/ColorStateList;)V" since="23"/> <method name="setCompoundDrawableTintMode(Landroid/graphics/PorterDuff$Mode;)V" since="23"/> <method name="setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V"/> @@ -57360,8 +55265,6 @@ <method name="setTextClassifier(Landroid/view/textclassifier/TextClassifier;)V" since="26"/> <method name="setTextColor(I)V"/> <method name="setTextColor(Landroid/content/res/ColorStateList;)V"/> - <method name="setTextCursorDrawable(I)V" since="29"/> - <method name="setTextCursorDrawable(Landroid/graphics/drawable/Drawable;)V" since="29"/> <method name="setTextIsSelectable(Z)V" since="11"/> <method name="setTextKeepState(Ljava/lang/CharSequence;)V"/> <method name="setTextKeepState(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V"/> @@ -57369,12 +55272,6 @@ <method name="setTextLocales(Landroid/os/LocaleList;)V" since="24"/> <method name="setTextMetricsParams(Landroid/text/PrecomputedText$Params;)V" since="28"/> <method name="setTextScaleX(F)V"/> - <method name="setTextSelectHandle(I)V" since="29"/> - <method name="setTextSelectHandle(Landroid/graphics/drawable/Drawable;)V" since="29"/> - <method name="setTextSelectHandleLeft(I)V" since="29"/> - <method name="setTextSelectHandleLeft(Landroid/graphics/drawable/Drawable;)V" since="29"/> - <method name="setTextSelectHandleRight(I)V" since="29"/> - <method name="setTextSelectHandleRight(Landroid/graphics/drawable/Drawable;)V" since="29"/> <method name="setTextSize(F)V"/> <method name="setTextSize(IF)V"/> <method name="setTransformationMethod(Landroid/text/method/TransformationMethod;)V"/> @@ -57398,6 +55295,8 @@ </class> <class name="android/widget/TextView$SavedState" since="1"> <extends name="android/view/View$BaseSavedState"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/os/Parcelable;)V" since="29"/> <field name="CREATOR"/> </class> <class name="android/widget/ThemedSpinnerAdapter" since="23"> @@ -57458,7 +55357,6 @@ <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> - <method name="getDisabledAlpha()F" since="29"/> <method name="getTextOff()Ljava/lang/CharSequence;"/> <method name="getTextOn()Ljava/lang/CharSequence;"/> <method name="setTextOff(Ljava/lang/CharSequence;)V"/> @@ -57475,8 +55373,6 @@ <method name="generateDefaultLayoutParams()Landroid/widget/Toolbar$LayoutParams;"/> <method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/Toolbar$LayoutParams;"/> <method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/Toolbar$LayoutParams;"/> - <method name="getCollapseContentDescription()Ljava/lang/CharSequence;" since="29"/> - <method name="getCollapseIcon()Landroid/graphics/drawable/Drawable;" since="29"/> <method name="getContentInsetEnd()I"/> <method name="getContentInsetEndWithActions()I" since="24"/> <method name="getContentInsetLeft()I"/> @@ -57504,10 +55400,6 @@ <method name="hideOverflowMenu()Z"/> <method name="inflateMenu(I)V"/> <method name="isOverflowMenuShowing()Z"/> - <method name="setCollapseContentDescription(I)V" since="29"/> - <method name="setCollapseContentDescription(Ljava/lang/CharSequence;)V" since="29"/> - <method name="setCollapseIcon(I)V" since="29"/> - <method name="setCollapseIcon(Landroid/graphics/drawable/Drawable;)V" since="29"/> <method name="setContentInsetEndWithActions(I)V" since="24"/> <method name="setContentInsetStartWithNavigation(I)V" since="24"/> <method name="setContentInsetsAbsolute(II)V"/> @@ -57556,12 +55448,12 @@ </class> <class name="android/widget/TwoLineListItem" since="1" deprecated="17"> <extends name="android/widget/RelativeLayout"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="getText1()Landroid/widget/TextView;" deprecated="29"/> - <method name="getText2()Landroid/widget/TextView;" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="getText1()Landroid/widget/TextView;"/> + <method name="getText2()Landroid/widget/TextView;"/> </class> <class name="android/widget/VideoView" since="1"> <extends name="android/view/SurfaceView"/> @@ -57608,7 +55500,6 @@ <extends name="android/widget/ViewAnimator"/> <method name="<init>(Landroid/content/Context;)V"/> <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> - <method name="getFlipInterval()I" since="29"/> <method name="isAutoStart()Z" since="7"/> <method name="isFlipping()Z"/> <method name="setAutoStart(Z)V" since="7"/> @@ -57636,44 +55527,52 @@ <class name="android/widget/ZoomButton" since="1" deprecated="26"> <extends name="android/widget/ImageButton"/> <implements name="android/view/View$OnLongClickListener"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" deprecated="29"/> - <method name="setZoomSpeed(J)V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21"/> + <method name="setZoomSpeed(J)V"/> </class> <class name="android/widget/ZoomButtonsController" since="4" deprecated="26"> <extends name="java/lang/Object"/> <implements name="android/view/View$OnTouchListener"/> - <method name="<init>(Landroid/view/View;)V" deprecated="29"/> - <method name="getContainer()Landroid/view/ViewGroup;" deprecated="29"/> - <method name="getZoomControls()Landroid/view/View;" deprecated="29"/> - <method name="isAutoDismissed()Z" deprecated="29"/> - <method name="isVisible()Z" deprecated="29"/> - <method name="setAutoDismissed(Z)V" deprecated="29"/> - <method name="setFocusable(Z)V" deprecated="29"/> - <method name="setOnZoomListener(Landroid/widget/ZoomButtonsController$OnZoomListener;)V" deprecated="29"/> - <method name="setVisible(Z)V" deprecated="29"/> - <method name="setZoomInEnabled(Z)V" deprecated="29"/> - <method name="setZoomOutEnabled(Z)V" deprecated="29"/> - <method name="setZoomSpeed(J)V" deprecated="29"/> + <method name="<init>(Landroid/view/View;)V"/> + <method name="getContainer()Landroid/view/ViewGroup;"/> + <method name="getZoomControls()Landroid/view/View;"/> + <method name="isAutoDismissed()Z"/> + <method name="isVisible()Z"/> + <method name="setAutoDismissed(Z)V"/> + <method name="setFocusable(Z)V"/> + <method name="setOnZoomListener(Landroid/widget/ZoomButtonsController$OnZoomListener;)V"/> + <method name="setVisible(Z)V"/> + <method name="setZoomInEnabled(Z)V"/> + <method name="setZoomOutEnabled(Z)V"/> + <method name="setZoomSpeed(J)V"/> </class> - <class name="android/widget/ZoomButtonsController$OnZoomListener" since="4" deprecated="29"> + <class name="android/widget/ZoomButtonsController$OnZoomListener" since="4"> <extends name="java/lang/Object"/> - <method name="onVisibilityChanged(Z)V" deprecated="29"/> - <method name="onZoom(Z)V" deprecated="29"/> + <method name="onVisibilityChanged(Z)V"/> + <method name="onZoom(Z)V"/> </class> - <class name="android/widget/ZoomControls" since="1" deprecated="29"> + <class name="android/widget/ZoomControls" since="1"> <extends name="android/widget/LinearLayout"/> - <method name="<init>(Landroid/content/Context;)V" deprecated="29"/> - <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" deprecated="29"/> - <method name="hide()V" deprecated="29"/> - <method name="setIsZoomInEnabled(Z)V" deprecated="29"/> - <method name="setIsZoomOutEnabled(Z)V" deprecated="29"/> - <method name="setOnZoomInClickListener(Landroid/view/View$OnClickListener;)V" deprecated="29"/> - <method name="setOnZoomOutClickListener(Landroid/view/View$OnClickListener;)V" deprecated="29"/> - <method name="setZoomSpeed(J)V" deprecated="29"/> - <method name="show()V" deprecated="29"/> + <method name="<init>(Landroid/content/Context;)V"/> + <method name="<init>(Landroid/content/Context;Landroid/util/AttributeSet;)V"/> + <method name="hide()V"/> + <method name="setIsZoomInEnabled(Z)V"/> + <method name="setIsZoomOutEnabled(Z)V"/> + <method name="setOnZoomInClickListener(Landroid/view/View$OnClickListener;)V"/> + <method name="setOnZoomOutClickListener(Landroid/view/View$OnClickListener;)V"/> + <method name="setZoomSpeed(J)V"/> + <method name="show()V"/> + </class> + <class name="androidx/annotation/RecentlyNonNull" since="29"> + <extends name="java/lang/Object"/> + <implements name="java/lang/annotation/Annotation"/> + </class> + <class name="androidx/annotation/RecentlyNullable" since="29"> + <extends name="java/lang/Object"/> + <implements name="java/lang/annotation/Annotation"/> </class> <class name="com/android/internal/util/Predicate" since="1" deprecated="26" removed="28"> <extends name="java/lang/Object"/> @@ -57721,6 +55620,7 @@ <class name="com/google/android/maps/MapController" since="1" removed="3"> <extends name="java/lang/Object"/> <implements name="android/view/View$OnKeyListener"/> + <method name="<init>()V"/> <method name="animateTo(Lcom/google/android/maps/GeoPoint;)V"/> <method name="animateTo(Lcom/google/android/maps/GeoPoint;Landroid/os/Message;)V"/> <method name="animateTo(Lcom/google/android/maps/GeoPoint;Ljava/lang/Runnable;)V"/> @@ -57855,6 +55755,7 @@ </class> <class name="com/google/android/maps/TrackballGestureDetector" since="1" removed="3"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="analyze(Landroid/view/MotionEvent;)V"/> <method name="getCurrentDownX()F"/> <method name="getCurrentDownY()F"/> @@ -57870,17 +55771,18 @@ <class name="dalvik/annotation/TestTarget" since="1" deprecated="14"> <extends name="java/lang/Object"/> <implements name="java/lang/annotation/Annotation"/> - <method name="conceptName()Ljava/lang/String;" since="3" deprecated="29"/> - <method name="methodArgs()[Ljava/lang/Class;" deprecated="29"/> - <method name="methodName()Ljava/lang/String;" deprecated="29"/> + <method name="conceptName()Ljava/lang/String;" since="3"/> + <method name="methodArgs()[Ljava/lang/Class;"/> + <method name="methodName()Ljava/lang/String;"/> </class> <class name="dalvik/annotation/TestTargetClass" since="1" deprecated="14"> <extends name="java/lang/Object"/> <implements name="java/lang/annotation/Annotation"/> - <method name="value()Ljava/lang/Class;" deprecated="29"/> + <method name="value()Ljava/lang/Class;"/> </class> <class name="dalvik/bytecode/OpcodeInfo" since="11"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="MAXIMUM_PACKED_VALUE"/> <field name="MAXIMUM_VALUE"/> </class> @@ -57917,7 +55819,7 @@ <field name="OP_APUT_SHORT"/> <field name="OP_APUT_WIDE"/> <field name="OP_ARRAY_LENGTH"/> - <field name="OP_BREAKPOINT" since="8" deprecated="15"/> + <field name="OP_BREAKPOINT" since="8" deprecated="16"/> <field name="OP_CHECK_CAST"/> <field name="OP_CHECK_CAST_JUMBO" since="11"/> <field name="OP_CMPG_DOUBLE"/> @@ -57952,8 +55854,8 @@ <field name="OP_DOUBLE_TO_FLOAT"/> <field name="OP_DOUBLE_TO_INT"/> <field name="OP_DOUBLE_TO_LONG"/> - <field name="OP_EXECUTE_INLINE" deprecated="15"/> - <field name="OP_EXECUTE_INLINE_RANGE" since="8" deprecated="15"/> + <field name="OP_EXECUTE_INLINE" deprecated="16"/> + <field name="OP_EXECUTE_INLINE_RANGE" since="8" deprecated="16"/> <field name="OP_FILLED_NEW_ARRAY"/> <field name="OP_FILLED_NEW_ARRAY_JUMBO" since="11"/> <field name="OP_FILLED_NEW_ARRAY_RANGE"/> @@ -57986,14 +55888,14 @@ <field name="OP_IGET_JUMBO" since="11"/> <field name="OP_IGET_OBJECT"/> <field name="OP_IGET_OBJECT_JUMBO" since="11"/> - <field name="OP_IGET_OBJECT_QUICK" deprecated="15"/> - <field name="OP_IGET_QUICK" deprecated="15"/> + <field name="OP_IGET_OBJECT_QUICK" deprecated="16"/> + <field name="OP_IGET_QUICK" deprecated="16"/> <field name="OP_IGET_SHORT"/> <field name="OP_IGET_SHORT_JUMBO" since="11"/> <field name="OP_IGET_WIDE"/> <field name="OP_IGET_WIDE_JUMBO" since="11"/> - <field name="OP_IGET_WIDE_QUICK" deprecated="15"/> - <field name="OP_IGET_WIDE_VOLATILE" since="9" deprecated="15"/> + <field name="OP_IGET_WIDE_QUICK" deprecated="16"/> + <field name="OP_IGET_WIDE_VOLATILE" since="9" deprecated="16"/> <field name="OP_INSTANCE_OF"/> <field name="OP_INSTANCE_OF_JUMBO" since="11"/> <field name="OP_INT_TO_BYTE"/> @@ -58005,7 +55907,7 @@ <field name="OP_INVOKE_CUSTOM" since="26"/> <field name="OP_INVOKE_CUSTOM_RANGE" since="26"/> <field name="OP_INVOKE_DIRECT"/> - <field name="OP_INVOKE_DIRECT_EMPTY" deprecated="15"/> + <field name="OP_INVOKE_DIRECT_EMPTY" deprecated="16"/> <field name="OP_INVOKE_DIRECT_JUMBO" since="11"/> <field name="OP_INVOKE_DIRECT_RANGE"/> <field name="OP_INVOKE_INTERFACE"/> @@ -58018,13 +55920,13 @@ <field name="OP_INVOKE_STATIC_RANGE"/> <field name="OP_INVOKE_SUPER"/> <field name="OP_INVOKE_SUPER_JUMBO" since="11"/> - <field name="OP_INVOKE_SUPER_QUICK" deprecated="15"/> - <field name="OP_INVOKE_SUPER_QUICK_RANGE" deprecated="15"/> + <field name="OP_INVOKE_SUPER_QUICK" deprecated="16"/> + <field name="OP_INVOKE_SUPER_QUICK_RANGE" deprecated="16"/> <field name="OP_INVOKE_SUPER_RANGE"/> <field name="OP_INVOKE_VIRTUAL"/> <field name="OP_INVOKE_VIRTUAL_JUMBO" since="11"/> - <field name="OP_INVOKE_VIRTUAL_QUICK" deprecated="15"/> - <field name="OP_INVOKE_VIRTUAL_QUICK_RANGE" deprecated="15"/> + <field name="OP_INVOKE_VIRTUAL_QUICK" deprecated="16"/> + <field name="OP_INVOKE_VIRTUAL_QUICK_RANGE" deprecated="16"/> <field name="OP_INVOKE_VIRTUAL_RANGE"/> <field name="OP_IPUT"/> <field name="OP_IPUT_BOOLEAN"/> @@ -58036,14 +55938,14 @@ <field name="OP_IPUT_JUMBO" since="11"/> <field name="OP_IPUT_OBJECT"/> <field name="OP_IPUT_OBJECT_JUMBO" since="11"/> - <field name="OP_IPUT_OBJECT_QUICK" deprecated="15"/> - <field name="OP_IPUT_QUICK" deprecated="15"/> + <field name="OP_IPUT_OBJECT_QUICK" deprecated="16"/> + <field name="OP_IPUT_QUICK" deprecated="16"/> <field name="OP_IPUT_SHORT"/> <field name="OP_IPUT_SHORT_JUMBO" since="11"/> <field name="OP_IPUT_WIDE"/> <field name="OP_IPUT_WIDE_JUMBO" since="11"/> - <field name="OP_IPUT_WIDE_QUICK" deprecated="15"/> - <field name="OP_IPUT_WIDE_VOLATILE" since="9" deprecated="15"/> + <field name="OP_IPUT_WIDE_QUICK" deprecated="16"/> + <field name="OP_IPUT_WIDE_VOLATILE" since="9" deprecated="16"/> <field name="OP_LONG_TO_DOUBLE"/> <field name="OP_LONG_TO_FLOAT"/> <field name="OP_LONG_TO_INT"/> @@ -58120,7 +56022,7 @@ <field name="OP_SGET_SHORT_JUMBO" since="11"/> <field name="OP_SGET_WIDE"/> <field name="OP_SGET_WIDE_JUMBO" since="11"/> - <field name="OP_SGET_WIDE_VOLATILE" since="9" deprecated="15"/> + <field name="OP_SGET_WIDE_VOLATILE" since="9" deprecated="16"/> <field name="OP_SHL_INT"/> <field name="OP_SHL_INT_2ADDR"/> <field name="OP_SHL_INT_LIT8"/> @@ -58146,7 +56048,7 @@ <field name="OP_SPUT_SHORT_JUMBO" since="11"/> <field name="OP_SPUT_WIDE"/> <field name="OP_SPUT_WIDE_JUMBO" since="11"/> - <field name="OP_SPUT_WIDE_VOLATILE" since="9" deprecated="15"/> + <field name="OP_SPUT_WIDE_VOLATILE" since="9" deprecated="16"/> <field name="OP_SUB_DOUBLE"/> <field name="OP_SUB_DOUBLE_2ADDR"/> <field name="OP_SUB_FLOAT"/> @@ -58156,7 +56058,7 @@ <field name="OP_SUB_LONG"/> <field name="OP_SUB_LONG_2ADDR"/> <field name="OP_THROW"/> - <field name="OP_THROW_VERIFICATION_ERROR" since="8" deprecated="15"/> + <field name="OP_THROW_VERIFICATION_ERROR" since="8" deprecated="16"/> <field name="OP_UNUSED_3e" removed="8"/> <field name="OP_UNUSED_3f" removed="8"/> <field name="OP_UNUSED_40" removed="8"/> @@ -58208,7 +56110,6 @@ <extends name="dalvik/system/PathClassLoader"/> <method name="<init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V"/> <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V"/> - <method name="<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)V" since="29"/> </class> <class name="dalvik/system/DexClassLoader" since="3"> <extends name="dalvik/system/BaseDexClassLoader" since="14"/> @@ -58219,18 +56120,17 @@ <extends name="java/lang/Object"/> <method name="<init>(Ljava/io/File;)V" deprecated="26"/> <method name="<init>(Ljava/lang/String;)V" deprecated="26"/> - <method name="close()V" deprecated="29"/> - <method name="entries()Ljava/util/Enumeration;" deprecated="29"/> - <method name="getName()Ljava/lang/String;" deprecated="29"/> - <method name="isDexOptNeeded(Ljava/lang/String;)Z" deprecated="29"/> - <method name="loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;" deprecated="29"/> + <method name="close()V"/> + <method name="entries()Ljava/util/Enumeration;"/> + <method name="getName()Ljava/lang/String;"/> + <method name="isDexOptNeeded(Ljava/lang/String;)Z"/> + <method name="loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;"/> <method name="loadDex(Ljava/lang/String;Ljava/lang/String;I)Ldalvik/system/DexFile;" since="3" deprecated="26"/> </class> <class name="dalvik/system/InMemoryDexClassLoader" since="26"> <extends name="dalvik/system/BaseDexClassLoader"/> <method name="<init>(Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V"/> <method name="<init>([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V" since="27"/> - <method name="<init>([Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/ClassLoader;)V" since="29"/> </class> <class name="dalvik/system/PathClassLoader" since="1"> <extends name="dalvik/system/BaseDexClassLoader" since="14"/> @@ -58262,6 +56162,7 @@ </class> <class name="dalvik/system/VMDebug" since="1" removed="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="dumpHprofData(Ljava/lang/String;)V" since="3"/> <method name="getAllocCount(I)I"/> <method name="getInstructionCount([I)V"/> @@ -58312,6 +56213,7 @@ </class> <class name="dalvik/system/VMRuntime" since="1" removed="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="gcSoftReferences()V"/> <method name="getExternalBytesAllocated()J"/> <method name="getMinimumHeapSize()J"/> @@ -58331,6 +56233,7 @@ </class> <class name="dalvik/system/Zygote" since="1" removed="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="fork()I"/> <method name="forkAndSpecialize(II[II[[I)I" since="3"/> <method name="forkAndSpecialize(II[IZ[[I)I"/> @@ -58344,6 +56247,8 @@ <class name="java/awt/font/NumericShaper" since="1"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(II)V" since="29"/> <method name="getContextualShaper(I)Ljava/awt/font/NumericShaper;"/> <method name="getContextualShaper(II)Ljava/awt/font/NumericShaper;"/> <method name="getContextualShaper(Ljava/util/Set;)Ljava/awt/font/NumericShaper;" since="24"/> @@ -58570,7 +56475,7 @@ <method name="reset()V"/> <method name="size()I"/> <method name="toByteArray()[B"/> - <method name="toString(I)Ljava/lang/String;" deprecated="15"/> + <method name="toString(I)Ljava/lang/String;" deprecated="16"/> <method name="toString(Ljava/lang/String;)Ljava/lang/String;"/> <method name="writeTo(Ljava/io/OutputStream;)V"/> <field name="buf"/> @@ -58612,6 +56517,7 @@ <class name="java/io/Console" since="9"> <extends name="java/lang/Object"/> <implements name="java/io/Flushable"/> + <method name="<init>()V"/> <method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;"/> <method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;"/> <method name="readLine()Ljava/lang/String;"/> @@ -58734,7 +56640,7 @@ <method name="setWritable(ZZ)Z" since="9"/> <method name="toPath()Ljava/nio/file/Path;" since="26"/> <method name="toURI()Ljava/net/URI;"/> - <method name="toURL()Ljava/net/URL;" deprecated="15"/> + <method name="toURL()Ljava/net/URL;" deprecated="16"/> <field name="pathSeparator"/> <field name="pathSeparatorChar"/> <field name="separator"/> @@ -58872,9 +56778,9 @@ </class> <class name="java/io/LineNumberInputStream" since="1" deprecated="1"> <extends name="java/io/FilterInputStream"/> - <method name="<init>(Ljava/io/InputStream;)V" deprecated="29"/> - <method name="getLineNumber()I" deprecated="29"/> - <method name="setLineNumber(I)V" deprecated="29"/> + <method name="<init>(Ljava/io/InputStream;)V"/> + <method name="getLineNumber()I"/> + <method name="setLineNumber(I)V"/> </class> <class name="java/io/LineNumberReader" since="1"> <extends name="java/io/BufferedReader"/> @@ -58983,11 +56889,12 @@ <method name="put(Ljava/lang/String;Ljava/lang/Object;)V"/> <method name="put(Ljava/lang/String;S)V"/> <method name="put(Ljava/lang/String;Z)V"/> - <method name="write(Ljava/io/ObjectOutput;)V" deprecated="15"/> + <method name="write(Ljava/io/ObjectOutput;)V" deprecated="16"/> </class> <class name="java/io/ObjectStreamClass" since="1"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="forClass()Ljava/lang/Class;"/> <method name="getField(Ljava/lang/String;)Ljava/io/ObjectStreamField;"/> <method name="getFields()[Ljava/io/ObjectStreamField;"/> @@ -59050,6 +56957,8 @@ </class> <class name="java/io/OptionalDataException" since="1"> <extends name="java/io/ObjectStreamException"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <field name="eof"/> <field name="length"/> </class> @@ -59255,7 +57164,7 @@ </class> <class name="java/io/StreamTokenizer" since="1"> <extends name="java/lang/Object"/> - <method name="<init>(Ljava/io/InputStream;)V" deprecated="15"/> + <method name="<init>(Ljava/io/InputStream;)V" deprecated="16"/> <method name="<init>(Ljava/io/Reader;)V"/> <method name="commentChar(I)V"/> <method name="eolIsSignificant(Z)V"/> @@ -59282,10 +57191,10 @@ </class> <class name="java/io/StringBufferInputStream" since="1" deprecated="1"> <extends name="java/io/InputStream"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <field name="buffer" deprecated="29"/> - <field name="count" deprecated="29"/> - <field name="pos" deprecated="29"/> + <method name="<init>(Ljava/lang/String;)V"/> + <field name="buffer"/> + <field name="count"/> + <field name="pos"/> </class> <class name="java/io/StringReader" since="1"> <extends name="java/io/Reader"/> @@ -59347,6 +57256,34 @@ <method name="<init>()V"/> <method name="<init>(Ljava/lang/String;)V"/> </class> + <class name="java/lang/AbstractStringBuilder" since="1" removed="29"> + <extends name="java/lang/Object"/> + <implements name="java/lang/Appendable" since="26"/> + <implements name="java/lang/CharSequence" since="24"/> + <method name="<init>()V"/> + <method name="append(C)Ljava/lang/AbstractStringBuilder;" since="26"/> + <method name="append(Ljava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;" since="26"/> + <method name="append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;" since="26"/> + <method name="capacity()I"/> + <method name="charAt(I)C"/> + <method name="codePointAt(I)I"/> + <method name="codePointBefore(I)I"/> + <method name="codePointCount(II)I"/> + <method name="ensureCapacity(I)V"/> + <method name="getChars(II[CI)V"/> + <method name="indexOf(Ljava/lang/String;)I"/> + <method name="indexOf(Ljava/lang/String;I)I"/> + <method name="lastIndexOf(Ljava/lang/String;)I"/> + <method name="lastIndexOf(Ljava/lang/String;I)I"/> + <method name="length()I"/> + <method name="offsetByCodePoints(II)I"/> + <method name="setCharAt(IC)V"/> + <method name="setLength(I)V"/> + <method name="subSequence(II)Ljava/lang/CharSequence;"/> + <method name="substring(I)Ljava/lang/String;"/> + <method name="substring(II)Ljava/lang/String;"/> + <method name="trimToSize()V"/> + </class> <class name="java/lang/Appendable" since="1"> <extends name="java/lang/Object"/> <method name="append(C)Ljava/lang/Appendable;"/> @@ -59490,8 +57427,8 @@ <method name="isJavaIdentifierPart(I)Z"/> <method name="isJavaIdentifierStart(C)Z"/> <method name="isJavaIdentifierStart(I)Z"/> - <method name="isJavaLetter(C)Z" deprecated="15"/> - <method name="isJavaLetterOrDigit(C)Z" deprecated="15"/> + <method name="isJavaLetter(C)Z" deprecated="16"/> + <method name="isJavaLetterOrDigit(C)Z" deprecated="16"/> <method name="isLetter(C)Z"/> <method name="isLetter(I)Z"/> <method name="isLetterOrDigit(C)Z"/> @@ -59501,7 +57438,7 @@ <method name="isLowerCase(I)Z"/> <method name="isMirrored(C)Z"/> <method name="isMirrored(I)Z"/> - <method name="isSpace(C)Z" deprecated="15"/> + <method name="isSpace(C)Z" deprecated="16"/> <method name="isSpaceChar(C)Z"/> <method name="isSpaceChar(I)Z"/> <method name="isSupplementaryCodePoint(I)Z"/> @@ -59606,6 +57543,8 @@ </class> <class name="java/lang/Character$UnicodeBlock" since="1"> <extends name="java/lang/Character$Subset"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="forName(Ljava/lang/String;)Ljava/lang/Character$UnicodeBlock;"/> <method name="of(C)Ljava/lang/Character$UnicodeBlock;"/> <method name="of(I)Ljava/lang/Character$UnicodeBlock;"/> @@ -59801,7 +57740,7 @@ <field name="SUPPLEMENTAL_PUNCTUATION" since="19"/> <field name="SUPPLEMENTARY_PRIVATE_USE_AREA_A"/> <field name="SUPPLEMENTARY_PRIVATE_USE_AREA_B"/> - <field name="SURROGATES_AREA" deprecated="15"/> + <field name="SURROGATES_AREA" deprecated="16"/> <field name="SYLOTI_NAGRI" since="19"/> <field name="SYRIAC"/> <field name="TAGALOG"/> @@ -59947,6 +57886,7 @@ <implements name="java/lang/reflect/AnnotatedElement"/> <implements name="java/lang/reflect/GenericDeclaration"/> <implements name="java/lang/reflect/Type"/> + <method name="<init>()V"/> <method name="asSubclass(Ljava/lang/Class;)Ljava/lang/Class;"/> <method name="cast(Ljava/lang/Object;)Ljava/lang/Object;"/> <method name="desiredAssertionStatus()Z"/> @@ -60024,7 +57964,7 @@ <method name="defineClass(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;"/> <method name="defineClass(Ljava/lang/String;[BII)Ljava/lang/Class;"/> <method name="defineClass(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;"/> - <method name="defineClass([BII)Ljava/lang/Class;" deprecated="15"/> + <method name="defineClass([BII)Ljava/lang/Class;" deprecated="16"/> <method name="definePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;"/> <method name="findClass(Ljava/lang/String;)Ljava/lang/Class;"/> <method name="findLibrary(Ljava/lang/String;)Ljava/lang/String;"/> @@ -60073,6 +58013,7 @@ </class> <class name="java/lang/Compiler" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="command(Ljava/lang/Object;)Ljava/lang/Object;"/> <method name="compileClass(Ljava/lang/Class;)Z"/> <method name="compileClasses(Ljava/lang/String;)Z"/> @@ -60384,6 +58325,7 @@ </class> <class name="java/lang/Math" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="IEEEremainder(DD)D"/> <method name="abs(D)D"/> <method name="abs(F)F"/> @@ -60539,6 +58481,8 @@ <class name="java/lang/Package" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/reflect/AnnotatedElement"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;Ljava/lang/ClassLoader;)V" since="29"/> <method name="getImplementationTitle()Ljava/lang/String;"/> <method name="getImplementationVendor()Ljava/lang/String;"/> <method name="getImplementationVersion()Ljava/lang/String;"/> @@ -60591,6 +58535,7 @@ </class> <class name="java/lang/ProcessBuilder$Redirect" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="appendTo(Ljava/io/File;)Ljava/lang/ProcessBuilder$Redirect;"/> <method name="file()Ljava/io/File;"/> <method name="from(Ljava/io/File;)Ljava/lang/ProcessBuilder$Redirect;"/> @@ -60626,6 +58571,7 @@ </class> <class name="java/lang/Runtime" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addShutdownHook(Ljava/lang/Thread;)V"/> <method name="availableProcessors()I"/> <method name="exec(Ljava/lang/String;)Ljava/lang/Process;"/> @@ -60637,8 +58583,8 @@ <method name="exit(I)V"/> <method name="freeMemory()J"/> <method name="gc()V"/> - <method name="getLocalizedInputStream(Ljava/io/InputStream;)Ljava/io/InputStream;" deprecated="15"/> - <method name="getLocalizedOutputStream(Ljava/io/OutputStream;)Ljava/io/OutputStream;" deprecated="15"/> + <method name="getLocalizedInputStream(Ljava/io/InputStream;)Ljava/io/InputStream;" deprecated="16"/> + <method name="getLocalizedOutputStream(Ljava/io/OutputStream;)Ljava/io/OutputStream;" deprecated="16"/> <method name="getRuntime()Ljava/lang/Runtime;"/> <method name="halt(I)V"/> <method name="load(Ljava/lang/String;)V"/> @@ -60646,7 +58592,7 @@ <method name="maxMemory()J"/> <method name="removeShutdownHook(Ljava/lang/Thread;)Z"/> <method name="runFinalization()V"/> - <method name="runFinalizersOnExit(Z)V" deprecated="15"/> + <method name="runFinalizersOnExit(Z)V" deprecated="16"/> <method name="totalMemory()J"/> <method name="traceInstructions(Z)V"/> <method name="traceMethodCalls(Z)V"/> @@ -60692,7 +58638,7 @@ <method name="checkListen(I)V"/> <method name="checkMemberAccess(Ljava/lang/Class;I)V"/> <method name="checkMulticast(Ljava/net/InetAddress;)V"/> - <method name="checkMulticast(Ljava/net/InetAddress;B)V" deprecated="15"/> + <method name="checkMulticast(Ljava/net/InetAddress;B)V" deprecated="16"/> <method name="checkPackageAccess(Ljava/lang/String;)V"/> <method name="checkPackageDefinition(Ljava/lang/String;)V"/> <method name="checkPermission(Ljava/security/Permission;)V"/> @@ -60709,17 +58655,17 @@ <method name="checkTopLevelWindow(Ljava/lang/Object;)Z"/> <method name="checkWrite(Ljava/io/FileDescriptor;)V"/> <method name="checkWrite(Ljava/lang/String;)V"/> - <method name="classDepth(Ljava/lang/String;)I" deprecated="15"/> - <method name="classLoaderDepth()I" deprecated="15"/> - <method name="currentClassLoader()Ljava/lang/ClassLoader;" deprecated="15"/> - <method name="currentLoadedClass()Ljava/lang/Class;" deprecated="15"/> + <method name="classDepth(Ljava/lang/String;)I" deprecated="16"/> + <method name="classLoaderDepth()I" deprecated="16"/> + <method name="currentClassLoader()Ljava/lang/ClassLoader;" deprecated="16"/> + <method name="currentLoadedClass()Ljava/lang/Class;" deprecated="16"/> <method name="getClassContext()[Ljava/lang/Class;"/> - <method name="getInCheck()Z" deprecated="15"/> + <method name="getInCheck()Z" deprecated="16"/> <method name="getSecurityContext()Ljava/lang/Object;"/> <method name="getThreadGroup()Ljava/lang/ThreadGroup;"/> - <method name="inClass(Ljava/lang/String;)Z" deprecated="15"/> - <method name="inClassLoader()Z" deprecated="15"/> - <field name="inCheck" deprecated="15"/> + <method name="inClass(Ljava/lang/String;)Z" deprecated="16"/> + <method name="inClassLoader()Z" deprecated="16"/> + <field name="inCheck" deprecated="16"/> </class> <class name="java/lang/Short" since="1"> <extends name="java/lang/Number"/> @@ -60762,6 +58708,7 @@ </class> <class name="java/lang/StrictMath" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="IEEEremainder(DD)D"/> <method name="abs(D)D"/> <method name="abs(F)F"/> @@ -60842,9 +58789,9 @@ <method name="<init>(Ljava/lang/StringBuffer;)V"/> <method name="<init>(Ljava/lang/StringBuilder;)V"/> <method name="<init>([B)V"/> - <method name="<init>([BI)V" deprecated="15"/> + <method name="<init>([BI)V" deprecated="16"/> <method name="<init>([BII)V"/> - <method name="<init>([BIII)V" deprecated="15"/> + <method name="<init>([BIII)V" deprecated="16"/> <method name="<init>([BIILjava/lang/String;)V"/> <method name="<init>([BIILjava/nio/charset/Charset;)V" since="9"/> <method name="<init>([BLjava/lang/String;)V"/> @@ -60868,7 +58815,7 @@ <method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;"/> <method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;"/> <method name="getBytes()[B"/> - <method name="getBytes(II[BI)V" deprecated="15"/> + <method name="getBytes(II[BI)V" deprecated="16"/> <method name="getBytes(Ljava/lang/String;)[B"/> <method name="getBytes(Ljava/nio/charset/Charset;)[B" since="9"/> <method name="getChars(II[CI)V"/> @@ -60916,7 +58863,8 @@ <field name="CASE_INSENSITIVE_ORDER"/> </class> <class name="java/lang/StringBuffer" since="1"> - <extends name="java/lang/Object"/> + <extends name="java/lang/AbstractStringBuilder" removed="29"/> + <extends name="java/lang/Object" since="29"/> <implements name="java/io/Serializable"/> <implements name="java/lang/Appendable"/> <implements name="java/lang/CharSequence"/> @@ -60938,16 +58886,8 @@ <method name="append([C)Ljava/lang/StringBuffer;"/> <method name="append([CII)Ljava/lang/StringBuffer;"/> <method name="appendCodePoint(I)Ljava/lang/StringBuffer;"/> - <method name="capacity()I" since="9"/> - <method name="codePointAt(I)I"/> - <method name="codePointBefore(I)I"/> - <method name="codePointCount(II)I"/> <method name="delete(II)Ljava/lang/StringBuffer;"/> <method name="deleteCharAt(I)Ljava/lang/StringBuffer;"/> - <method name="ensureCapacity(I)V"/> - <method name="getChars(II[CI)V"/> - <method name="indexOf(Ljava/lang/String;)I" since="9"/> - <method name="indexOf(Ljava/lang/String;I)I"/> <method name="insert(IC)Ljava/lang/StringBuffer;"/> <method name="insert(ID)Ljava/lang/StringBuffer;"/> <method name="insert(IF)Ljava/lang/StringBuffer;"/> @@ -60960,19 +58900,12 @@ <method name="insert(IZ)Ljava/lang/StringBuffer;"/> <method name="insert(I[C)Ljava/lang/StringBuffer;"/> <method name="insert(I[CII)Ljava/lang/StringBuffer;"/> - <method name="lastIndexOf(Ljava/lang/String;)I" since="9"/> - <method name="lastIndexOf(Ljava/lang/String;I)I"/> - <method name="offsetByCodePoints(II)I"/> <method name="replace(IILjava/lang/String;)Ljava/lang/StringBuffer;"/> <method name="reverse()Ljava/lang/StringBuffer;"/> - <method name="setCharAt(IC)V"/> - <method name="setLength(I)V"/> - <method name="substring(I)Ljava/lang/String;"/> - <method name="substring(II)Ljava/lang/String;"/> - <method name="trimToSize()V"/> </class> <class name="java/lang/StringBuilder" since="1"> - <extends name="java/lang/Object"/> + <extends name="java/lang/AbstractStringBuilder" removed="29"/> + <extends name="java/lang/Object" since="29"/> <implements name="java/io/Serializable"/> <implements name="java/lang/Appendable"/> <implements name="java/lang/CharSequence"/> @@ -60994,16 +58927,8 @@ <method name="append([C)Ljava/lang/StringBuilder;"/> <method name="append([CII)Ljava/lang/StringBuilder;"/> <method name="appendCodePoint(I)Ljava/lang/StringBuilder;"/> - <method name="capacity()I" since="9"/> - <method name="codePointAt(I)I" since="9"/> - <method name="codePointBefore(I)I" since="9"/> - <method name="codePointCount(II)I" since="9"/> <method name="delete(II)Ljava/lang/StringBuilder;"/> <method name="deleteCharAt(I)Ljava/lang/StringBuilder;"/> - <method name="ensureCapacity(I)V" since="9"/> - <method name="getChars(II[CI)V" since="9"/> - <method name="indexOf(Ljava/lang/String;)I" since="9"/> - <method name="indexOf(Ljava/lang/String;I)I" since="9"/> <method name="insert(IC)Ljava/lang/StringBuilder;"/> <method name="insert(ID)Ljava/lang/StringBuilder;"/> <method name="insert(IF)Ljava/lang/StringBuilder;"/> @@ -61016,16 +58941,8 @@ <method name="insert(IZ)Ljava/lang/StringBuilder;"/> <method name="insert(I[C)Ljava/lang/StringBuilder;"/> <method name="insert(I[CII)Ljava/lang/StringBuilder;"/> - <method name="lastIndexOf(Ljava/lang/String;)I" since="9"/> - <method name="lastIndexOf(Ljava/lang/String;I)I" since="9"/> - <method name="offsetByCodePoints(II)I" since="9"/> <method name="replace(IILjava/lang/String;)Ljava/lang/StringBuilder;"/> <method name="reverse()Ljava/lang/StringBuilder;"/> - <method name="setCharAt(IC)V" since="9"/> - <method name="setLength(I)V" since="9"/> - <method name="substring(I)Ljava/lang/String;" since="9"/> - <method name="substring(II)Ljava/lang/String;" since="9"/> - <method name="trimToSize()V" since="9"/> </class> <class name="java/lang/StringIndexOutOfBoundsException" since="1"> <extends name="java/lang/IndexOutOfBoundsException"/> @@ -61040,6 +58957,7 @@ </class> <class name="java/lang/System" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V"/> <method name="clearProperty(Ljava/lang/String;)Ljava/lang/String;"/> <method name="console()Ljava/io/Console;" since="9"/> @@ -61060,7 +58978,7 @@ <method name="mapLibraryName(Ljava/lang/String;)Ljava/lang/String;"/> <method name="nanoTime()J"/> <method name="runFinalization()V"/> - <method name="runFinalizersOnExit(Z)V" deprecated="15"/> + <method name="runFinalizersOnExit(Z)V" deprecated="16"/> <method name="setErr(Ljava/io/PrintStream;)V"/> <method name="setIn(Ljava/io/InputStream;)V"/> <method name="setOut(Ljava/io/PrintStream;)V"/> @@ -61084,9 +59002,9 @@ <method name="<init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"/> <method name="activeCount()I"/> <method name="checkAccess()V"/> - <method name="countStackFrames()I" deprecated="15"/> + <method name="countStackFrames()I" deprecated="16"/> <method name="currentThread()Ljava/lang/Thread;"/> - <method name="destroy()V" deprecated="15"/> + <method name="destroy()V" deprecated="16"/> <method name="dumpStack()V"/> <method name="enumerate([Ljava/lang/Thread;)I"/> <method name="getAllStackTraces()Ljava/util/Map;"/> @@ -61108,7 +59026,7 @@ <method name="join()V"/> <method name="join(J)V"/> <method name="join(JI)V"/> - <method name="resume()V" deprecated="15"/> + <method name="resume()V" deprecated="16"/> <method name="setContextClassLoader(Ljava/lang/ClassLoader;)V"/> <method name="setDaemon(Z)V"/> <method name="setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V"/> @@ -61118,9 +59036,9 @@ <method name="sleep(J)V"/> <method name="sleep(JI)V"/> <method name="start()V"/> - <method name="stop()V" deprecated="15"/> - <method name="stop(Ljava/lang/Throwable;)V" deprecated="15"/> - <method name="suspend()V" deprecated="15"/> + <method name="stop()V" deprecated="16"/> + <method name="stop(Ljava/lang/Throwable;)V" deprecated="16"/> + <method name="suspend()V" deprecated="16"/> <method name="yield()V"/> <field name="MAX_PRIORITY"/> <field name="MIN_PRIORITY"/> @@ -61152,7 +59070,7 @@ <method name="<init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"/> <method name="activeCount()I"/> <method name="activeGroupCount()I"/> - <method name="allowThreadSuspension(Z)Z" deprecated="15"/> + <method name="allowThreadSuspension(Z)Z" deprecated="16"/> <method name="checkAccess()V"/> <method name="destroy()V"/> <method name="enumerate([Ljava/lang/Thread;)I"/> @@ -61167,11 +59085,11 @@ <method name="isDestroyed()Z"/> <method name="list()V"/> <method name="parentOf(Ljava/lang/ThreadGroup;)Z"/> - <method name="resume()V" deprecated="15"/> + <method name="resume()V" deprecated="16"/> <method name="setDaemon(Z)V"/> <method name="setMaxPriority(I)V"/> - <method name="stop()V" deprecated="15"/> - <method name="suspend()V" deprecated="15"/> + <method name="stop()V" deprecated="16"/> + <method name="suspend()V" deprecated="16"/> </class> <class name="java/lang/ThreadLocal" since="1"> <extends name="java/lang/Object"/> @@ -61244,6 +59162,7 @@ </class> <class name="java/lang/Void" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="TYPE"/> </class> <class name="java/lang/annotation/Annotation" since="1"> @@ -61320,6 +59239,8 @@ </class> <class name="java/lang/invoke/CallSite" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/invoke/MethodType;)V" since="29"/> <method name="dynamicInvoker()Ljava/lang/invoke/MethodHandle;"/> <method name="getTarget()Ljava/lang/invoke/MethodHandle;"/> <method name="setTarget(Ljava/lang/invoke/MethodHandle;)V"/> @@ -61340,6 +59261,8 @@ </class> <class name="java/lang/invoke/MethodHandle" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JILjava/lang/invoke/MethodType;)V" since="29"/> <method name="asCollector(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;"/> <method name="asFixedArity()Ljava/lang/invoke/MethodHandle;"/> <method name="asSpreader(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;"/> @@ -61361,9 +59284,9 @@ <method name="getName()Ljava/lang/String;"/> <method name="getReferenceKind()I"/> <method name="isVarArgs()Z"/> - <method name="refKindIsField(I)Z" deprecated="29"/> - <method name="refKindIsValid(I)Z" deprecated="29"/> - <method name="refKindName(I)Ljava/lang/String;" deprecated="29"/> + <method name="refKindIsField(I)Z"/> + <method name="refKindIsValid(I)Z"/> + <method name="refKindName(I)Ljava/lang/String;"/> <method name="referenceKindToString(I)Ljava/lang/String;"/> <method name="reflectAs(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;"/> <method name="toString(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/String;"/> @@ -61379,6 +59302,7 @@ </class> <class name="java/lang/invoke/MethodHandles" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="arrayElementGetter(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;"/> <method name="arrayElementSetter(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;"/> <method name="catchException(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;"/> @@ -61404,6 +59328,8 @@ </class> <class name="java/lang/invoke/MethodHandles$Lookup" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Class;)V" since="29"/> <method name="bind(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;"/> <method name="findConstructor(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;"/> <method name="findGetter(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;"/> @@ -61430,6 +59356,7 @@ <class name="java/lang/invoke/MethodType" since="26"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="appendParameterTypes(Ljava/util/List;)Ljava/lang/invoke/MethodType;"/> <method name="appendParameterTypes([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;"/> <method name="changeParameterType(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;"/> @@ -61480,6 +59407,8 @@ </class> <class name="java/lang/ref/Reference" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Object;)V" since="29"/> <method name="clear()V"/> <method name="enqueue()Z"/> <method name="get()Ljava/lang/Object;"/> @@ -61523,6 +59452,7 @@ </class> <class name="java/lang/reflect/Array" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="get(Ljava/lang/Object;I)Ljava/lang/Object;"/> <method name="getBoolean(Ljava/lang/Object;I)Z"/> <method name="getByte(Ljava/lang/Object;I)B"/> @@ -61550,6 +59480,7 @@ <extends name="java/lang/reflect/Executable" since="26"/> <implements name="java/lang/reflect/GenericDeclaration" removed="26"/> <implements name="java/lang/reflect/Member" removed="26"/> + <method name="<init>()V"/> <method name="getExceptionTypes()[Ljava/lang/Class;"/> <method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;"/> <method name="getGenericParameterTypes()[Ljava/lang/reflect/Type;"/> @@ -61563,6 +59494,7 @@ <extends name="java/lang/reflect/AccessibleObject"/> <implements name="java/lang/reflect/GenericDeclaration"/> <implements name="java/lang/reflect/Member"/> + <method name="<init>()V"/> <method name="getExceptionTypes()[Ljava/lang/Class;"/> <method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;"/> <method name="getGenericParameterTypes()[Ljava/lang/reflect/Type;"/> @@ -61576,6 +59508,7 @@ <class name="java/lang/reflect/Field" since="1"> <extends name="java/lang/reflect/AccessibleObject"/> <implements name="java/lang/reflect/Member"/> + <method name="<init>()V"/> <method name="get(Ljava/lang/Object;)Ljava/lang/Object;"/> <method name="getBoolean(Ljava/lang/Object;)Z"/> <method name="getByte(Ljava/lang/Object;)B"/> @@ -61649,6 +59582,7 @@ <extends name="java/lang/reflect/Executable" since="26"/> <implements name="java/lang/reflect/GenericDeclaration" removed="26"/> <implements name="java/lang/reflect/Member" removed="26"/> + <method name="<init>()V"/> <method name="getDefaultValue()Ljava/lang/Object;"/> <method name="getExceptionTypes()[Ljava/lang/Class;"/> <method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;"/> @@ -61701,6 +59635,8 @@ <class name="java/lang/reflect/Parameter" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/reflect/AnnotatedElement"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;ILjava/lang/reflect/Executable;I)V" since="29"/> <method name="getDeclaringExecutable()Ljava/lang/reflect/Executable;"/> <method name="getModifiers()I"/> <method name="getName()Ljava/lang/String;"/> @@ -62075,7 +60011,7 @@ <method name="disconnect()V"/> <method name="getFileDescriptor()Ljava/io/FileDescriptor;"/> <method name="getLocalPort()I"/> - <method name="getTTL()B" deprecated="15"/> + <method name="getTTL()B" deprecated="16"/> <method name="getTimeToLive()I"/> <method name="join(Ljava/net/InetAddress;)V"/> <method name="joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V"/> @@ -62085,7 +60021,7 @@ <method name="peekData(Ljava/net/DatagramPacket;)I"/> <method name="receive(Ljava/net/DatagramPacket;)V"/> <method name="send(Ljava/net/DatagramPacket;)V"/> - <method name="setTTL(B)V" deprecated="15"/> + <method name="setTTL(B)V" deprecated="16"/> <method name="setTimeToLive(I)V"/> <field name="fd"/> <field name="localPort"/> @@ -62184,7 +60120,7 @@ <field name="HTTP_REQ_TOO_LONG"/> <field name="HTTP_RESET"/> <field name="HTTP_SEE_OTHER"/> - <field name="HTTP_SERVER_ERROR" deprecated="15"/> + <field name="HTTP_SERVER_ERROR" deprecated="16"/> <field name="HTTP_UNAUTHORIZED"/> <field name="HTTP_UNAVAILABLE"/> <field name="HTTP_UNSUPPORTED_TYPE"/> @@ -62200,6 +60136,7 @@ </class> <class name="java/net/IDN" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="toASCII(Ljava/lang/String;)Ljava/lang/String;"/> <method name="toASCII(Ljava/lang/String;I)Ljava/lang/String;"/> <method name="toUnicode(Ljava/lang/String;)Ljava/lang/String;"/> @@ -62209,9 +60146,11 @@ </class> <class name="java/net/Inet4Address" since="1"> <extends name="java/net/InetAddress"/> + <method name="<init>()V"/> </class> <class name="java/net/Inet6Address" since="1"> <extends name="java/net/InetAddress"/> + <method name="<init>()V"/> <method name="getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address;"/> <method name="getByAddress(Ljava/lang/String;[BLjava/net/NetworkInterface;)Ljava/net/Inet6Address;"/> <method name="getScopeId()I"/> @@ -62221,6 +60160,7 @@ <class name="java/net/InetAddress" since="1"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="getAddress()[B"/> <method name="getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;"/> <method name="getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddress;"/> @@ -62258,6 +60198,7 @@ </class> <class name="java/net/InterfaceAddress" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAddress()Ljava/net/InetAddress;"/> <method name="getBroadcast()Ljava/net/InetAddress;"/> <method name="getNetworkPrefixLength()S"/> @@ -62288,17 +60229,17 @@ <method name="getInterface()Ljava/net/InetAddress;"/> <method name="getLoopbackMode()Z"/> <method name="getNetworkInterface()Ljava/net/NetworkInterface;"/> - <method name="getTTL()B" deprecated="15"/> + <method name="getTTL()B" deprecated="16"/> <method name="getTimeToLive()I"/> <method name="joinGroup(Ljava/net/InetAddress;)V"/> <method name="joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V"/> <method name="leaveGroup(Ljava/net/InetAddress;)V"/> <method name="leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V"/> - <method name="send(Ljava/net/DatagramPacket;B)V" deprecated="15"/> + <method name="send(Ljava/net/DatagramPacket;B)V" deprecated="16"/> <method name="setInterface(Ljava/net/InetAddress;)V"/> <method name="setLoopbackMode(Z)V"/> <method name="setNetworkInterface(Ljava/net/NetworkInterface;)V"/> - <method name="setTTL(B)V" deprecated="15"/> + <method name="setTTL(B)V" deprecated="16"/> <method name="setTimeToLive(I)V"/> </class> <class name="java/net/NetPermission" since="1"> @@ -62308,6 +60249,7 @@ </class> <class name="java/net/NetworkInterface" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getByIndex(I)Ljava/net/NetworkInterface;" since="19"/> <method name="getByInetAddress(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;"/> <method name="getByName(Ljava/lang/String;)Ljava/net/NetworkInterface;"/> @@ -62426,10 +60368,10 @@ <method name="<init>()V"/> <method name="<init>(Ljava/lang/String;I)V"/> <method name="<init>(Ljava/lang/String;ILjava/net/InetAddress;I)V"/> - <method name="<init>(Ljava/lang/String;IZ)V" deprecated="15"/> + <method name="<init>(Ljava/lang/String;IZ)V" deprecated="16"/> <method name="<init>(Ljava/net/InetAddress;I)V"/> <method name="<init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V"/> - <method name="<init>(Ljava/net/InetAddress;IZ)V" deprecated="15"/> + <method name="<init>(Ljava/net/InetAddress;IZ)V" deprecated="16"/> <method name="<init>(Ljava/net/Proxy;)V"/> <method name="<init>(Ljava/net/SocketImpl;)V"/> <method name="bind(Ljava/net/SocketAddress;)V"/> @@ -62560,6 +60502,7 @@ </class> <class name="java/net/StandardSocketOptions" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="IP_MULTICAST_IF"/> <field name="IP_MULTICAST_LOOP"/> <field name="IP_MULTICAST_TTL"/> @@ -62674,7 +60617,7 @@ <method name="getContentType()Ljava/lang/String;"/> <method name="getDate()J"/> <method name="getDefaultAllowUserInteraction()Z"/> - <method name="getDefaultRequestProperty(Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> + <method name="getDefaultRequestProperty(Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> <method name="getDefaultUseCaches()Z"/> <method name="getDoInput()Z"/> <method name="getDoOutput()Z"/> @@ -62703,7 +60646,7 @@ <method name="setConnectTimeout(I)V"/> <method name="setContentHandlerFactory(Ljava/net/ContentHandlerFactory;)V"/> <method name="setDefaultAllowUserInteraction(Z)V"/> - <method name="setDefaultRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" deprecated="15"/> + <method name="setDefaultRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" deprecated="16"/> <method name="setDefaultUseCaches(Z)V"/> <method name="setDoInput(Z)V"/> <method name="setDoOutput(Z)V"/> @@ -62723,12 +60666,13 @@ <class name="java/net/URLDecoder" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="decode(Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> + <method name="decode(Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> <method name="decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> </class> <class name="java/net/URLEncoder" since="1"> <extends name="java/lang/Object"/> - <method name="encode(Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> + <method name="<init>()V"/> + <method name="encode(Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> <method name="encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"/> </class> <class name="java/net/URLStreamHandler" since="1"> @@ -62743,7 +60687,7 @@ <method name="openConnection(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;"/> <method name="parseURL(Ljava/net/URL;Ljava/lang/String;II)V"/> <method name="sameFile(Ljava/net/URL;Ljava/net/URL;)Z"/> - <method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" deprecated="15"/> + <method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" deprecated="16"/> <method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"/> <method name="toExternalForm(Ljava/net/URL;)Ljava/lang/String;"/> </class> @@ -62763,6 +60707,8 @@ </class> <class name="java/nio/Buffer" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIIII)V" since="29"/> <method name="array()Ljava/lang/Object;" since="9"/> <method name="arrayOffset()I" since="9"/> <method name="capacity()I"/> @@ -62792,6 +60738,8 @@ <class name="java/nio/ByteBuffer" since="1"> <extends name="java/nio/Buffer"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/ByteBuffer;"/> <method name="allocateDirect(I)Ljava/nio/ByteBuffer;"/> <method name="array()[B"/> @@ -62849,6 +60797,8 @@ </class> <class name="java/nio/ByteOrder" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="nativeOrder()Ljava/nio/ByteOrder;"/> <field name="BIG_ENDIAN"/> <field name="LITTLE_ENDIAN"/> @@ -62859,6 +60809,8 @@ <implements name="java/lang/CharSequence"/> <implements name="java/lang/Comparable"/> <implements name="java/lang/Readable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/CharBuffer;"/> <method name="append(C)Ljava/nio/CharBuffer;"/> <method name="append(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;"/> @@ -62893,6 +60845,8 @@ <class name="java/nio/DoubleBuffer" since="1"> <extends name="java/nio/Buffer"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/DoubleBuffer;"/> <method name="array()[D"/> <method name="arrayOffset()I"/> @@ -62919,6 +60873,8 @@ <class name="java/nio/FloatBuffer" since="1"> <extends name="java/nio/Buffer"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/FloatBuffer;"/> <method name="array()[F"/> <method name="arrayOffset()I"/> @@ -62945,6 +60901,8 @@ <class name="java/nio/IntBuffer" since="1"> <extends name="java/nio/Buffer"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/IntBuffer;"/> <method name="array()[I"/> <method name="arrayOffset()I"/> @@ -62975,6 +60933,8 @@ <class name="java/nio/LongBuffer" since="1"> <extends name="java/nio/Buffer"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/LongBuffer;"/> <method name="array()[J"/> <method name="arrayOffset()I"/> @@ -63000,6 +60960,8 @@ </class> <class name="java/nio/MappedByteBuffer" since="1"> <extends name="java/nio/ByteBuffer"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="force()Ljava/nio/MappedByteBuffer;"/> <method name="isLoaded()Z"/> <method name="load()Ljava/nio/MappedByteBuffer;"/> @@ -63011,6 +60973,8 @@ <class name="java/nio/ShortBuffer" since="1"> <extends name="java/nio/Buffer"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="allocate(I)Ljava/nio/ShortBuffer;"/> <method name="array()[S"/> <method name="arrayOffset()I"/> @@ -63145,6 +61109,7 @@ </class> <class name="java/nio/channels/Channels" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="newChannel(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;"/> <method name="newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;"/> <method name="newInputStream(Ljava/nio/channels/AsynchronousByteChannel;)Ljava/io/InputStream;" since="26"/> @@ -63223,6 +61188,8 @@ </class> <class name="java/nio/channels/FileChannel$MapMode" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <field name="PRIVATE"/> <field name="READ_ONLY"/> <field name="READ_WRITE"/> @@ -63600,6 +61567,8 @@ </class> <class name="java/nio/charset/CoderResult" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(II)V" since="29"/> <method name="isError()Z"/> <method name="isMalformed()Z"/> <method name="isOverflow()Z"/> @@ -63614,6 +61583,8 @@ </class> <class name="java/nio/charset/CodingErrorAction" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <field name="IGNORE"/> <field name="REPLACE"/> <field name="REPORT"/> @@ -63630,6 +61601,7 @@ </class> <class name="java/nio/charset/StandardCharsets" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ISO_8859_1"/> <field name="US_ASCII"/> <field name="UTF_16"/> @@ -63762,6 +61734,7 @@ </class> <class name="java/nio/file/FileSystems" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDefault()Ljava/nio/file/FileSystem;"/> <method name="getFileSystem(Ljava/net/URI;)Ljava/nio/file/FileSystem;"/> <method name="newFileSystem(Ljava/net/URI;Ljava/util/Map;)Ljava/nio/file/FileSystem;"/> @@ -63792,6 +61765,7 @@ </class> <class name="java/nio/file/Files" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="copy(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J"/> <method name="copy(Ljava/nio/file/Path;Ljava/io/OutputStream;)J"/> <method name="copy(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;"/> @@ -63931,6 +61905,7 @@ </class> <class name="java/nio/file/Paths" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="get(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;"/> <method name="get(Ljava/net/URI;)Ljava/nio/file/Path;"/> </class> @@ -63991,6 +61966,7 @@ </class> <class name="java/nio/file/StandardWatchEventKinds" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ENTRY_CREATE"/> <field name="ENTRY_DELETE"/> <field name="ENTRY_MODIFY"/> @@ -64033,6 +62009,8 @@ </class> <class name="java/nio/file/attribute/AclEntry" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/nio/file/attribute/AclEntryType;Ljava/nio/file/attribute/UserPrincipal;Ljava/util/Set;Ljava/util/Set;)V" since="29"/> <method name="flags()Ljava/util/Set;"/> <method name="newBuilder()Ljava/nio/file/attribute/AclEntry$Builder;"/> <method name="newBuilder(Ljava/nio/file/attribute/AclEntry;)Ljava/nio/file/attribute/AclEntry$Builder;"/> @@ -64042,6 +62020,8 @@ </class> <class name="java/nio/file/attribute/AclEntry$Builder" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/nio/file/attribute/AclEntryType;Ljava/nio/file/attribute/UserPrincipal;Ljava/util/Set;Ljava/util/Set;)V" since="29"/> <method name="build()Ljava/nio/file/attribute/AclEntry;"/> <method name="setFlags(Ljava/util/Set;)Ljava/nio/file/attribute/AclEntry$Builder;"/> <method name="setFlags([Ljava/nio/file/attribute/AclEntryFlag;)Ljava/nio/file/attribute/AclEntry$Builder;"/> @@ -64157,6 +62137,8 @@ <class name="java/nio/file/attribute/FileTime" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JLjava/util/concurrent/TimeUnit;Ljava/time/Instant;)V" since="29"/> <method name="compareTo(Ljava/nio/file/attribute/FileTime;)I"/> <method name="from(JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/attribute/FileTime;"/> <method name="from(Ljava/time/Instant;)Ljava/nio/file/attribute/FileTime;"/> @@ -64200,6 +62182,7 @@ </class> <class name="java/nio/file/attribute/PosixFilePermissions" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="asFileAttribute(Ljava/util/Set;)Ljava/nio/file/attribute/FileAttribute;"/> <method name="fromString(Ljava/lang/String;)Ljava/util/Set;"/> <method name="toString(Ljava/util/Set;)Ljava/lang/String;"/> @@ -64280,6 +62263,7 @@ </class> <class name="java/security/AccessController" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="checkPermission(Ljava/security/Permission;)V"/> <method name="doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;"/> <method name="doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;"/> @@ -64361,13 +62345,13 @@ </class> <class name="java/security/Certificate" since="1" deprecated="3"> <extends name="java/lang/Object"/> - <method name="decode(Ljava/io/InputStream;)V" deprecated="29"/> - <method name="encode(Ljava/io/OutputStream;)V" deprecated="29"/> - <method name="getFormat()Ljava/lang/String;" deprecated="29"/> - <method name="getGuarantor()Ljava/security/Principal;" deprecated="29"/> - <method name="getPrincipal()Ljava/security/Principal;" deprecated="29"/> - <method name="getPublicKey()Ljava/security/PublicKey;" deprecated="29"/> - <method name="toString(Z)Ljava/lang/String;" deprecated="29"/> + <method name="decode(Ljava/io/InputStream;)V"/> + <method name="encode(Ljava/io/OutputStream;)V"/> + <method name="getFormat()Ljava/lang/String;"/> + <method name="getGuarantor()Ljava/security/Principal;"/> + <method name="getPrincipal()Ljava/security/Principal;"/> + <method name="getPublicKey()Ljava/security/PublicKey;"/> + <method name="toString(Z)Ljava/lang/String;"/> </class> <class name="java/security/CodeSigner" since="1"> <extends name="java/lang/Object"/> @@ -64456,34 +62440,34 @@ <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> <implements name="java/security/Principal"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" deprecated="29"/> - <method name="addCertificate(Ljava/security/Certificate;)V" deprecated="29"/> - <method name="certificates()[Ljava/security/Certificate;" deprecated="29"/> - <method name="getInfo()Ljava/lang/String;" deprecated="29"/> - <method name="getPublicKey()Ljava/security/PublicKey;" deprecated="29"/> - <method name="getScope()Ljava/security/IdentityScope;" deprecated="29"/> - <method name="identityEquals(Ljava/security/Identity;)Z" deprecated="29"/> - <method name="removeCertificate(Ljava/security/Certificate;)V" deprecated="29"/> - <method name="setInfo(Ljava/lang/String;)V" deprecated="29"/> - <method name="setPublicKey(Ljava/security/PublicKey;)V" deprecated="29"/> - <method name="toString(Z)Ljava/lang/String;" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Ljava/lang/String;)V"/> + <method name="<init>(Ljava/lang/String;Ljava/security/IdentityScope;)V"/> + <method name="addCertificate(Ljava/security/Certificate;)V"/> + <method name="certificates()[Ljava/security/Certificate;"/> + <method name="getInfo()Ljava/lang/String;"/> + <method name="getPublicKey()Ljava/security/PublicKey;"/> + <method name="getScope()Ljava/security/IdentityScope;"/> + <method name="identityEquals(Ljava/security/Identity;)Z"/> + <method name="removeCertificate(Ljava/security/Certificate;)V"/> + <method name="setInfo(Ljava/lang/String;)V"/> + <method name="setPublicKey(Ljava/security/PublicKey;)V"/> + <method name="toString(Z)Ljava/lang/String;"/> </class> <class name="java/security/IdentityScope" since="1" deprecated="3"> <extends name="java/security/Identity"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" deprecated="29"/> - <method name="addIdentity(Ljava/security/Identity;)V" deprecated="29"/> - <method name="getIdentity(Ljava/lang/String;)Ljava/security/Identity;" deprecated="29"/> - <method name="getIdentity(Ljava/security/Principal;)Ljava/security/Identity;" deprecated="29"/> - <method name="getIdentity(Ljava/security/PublicKey;)Ljava/security/Identity;" deprecated="29"/> - <method name="getSystemScope()Ljava/security/IdentityScope;" deprecated="29"/> - <method name="identities()Ljava/util/Enumeration;" deprecated="29"/> - <method name="removeIdentity(Ljava/security/Identity;)V" deprecated="29"/> - <method name="setSystemScope(Ljava/security/IdentityScope;)V" deprecated="29"/> - <method name="size()I" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Ljava/lang/String;)V"/> + <method name="<init>(Ljava/lang/String;Ljava/security/IdentityScope;)V"/> + <method name="addIdentity(Ljava/security/Identity;)V"/> + <method name="getIdentity(Ljava/lang/String;)Ljava/security/Identity;"/> + <method name="getIdentity(Ljava/security/Principal;)Ljava/security/Identity;"/> + <method name="getIdentity(Ljava/security/PublicKey;)Ljava/security/Identity;"/> + <method name="getSystemScope()Ljava/security/IdentityScope;"/> + <method name="identities()Ljava/util/Enumeration;"/> + <method name="removeIdentity(Ljava/security/Identity;)V"/> + <method name="setSystemScope(Ljava/security/IdentityScope;)V"/> + <method name="size()I"/> </class> <class name="java/security/InvalidAlgorithmParameterException" since="1"> <extends name="java/security/GeneralSecurityException"/> @@ -64916,8 +62900,9 @@ </class> <class name="java/security/Security" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addProvider(Ljava/security/Provider;)I"/> - <method name="getAlgorithmProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="15"/> + <method name="getAlgorithmProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" deprecated="16"/> <method name="getAlgorithms(Ljava/lang/String;)Ljava/util/Set;"/> <method name="getProperty(Ljava/lang/String;)Ljava/lang/String;"/> <method name="getProvider(Ljava/lang/String;)Ljava/security/Provider;"/> @@ -64940,14 +62925,14 @@ <method name="getInstance(Ljava/lang/String;)Ljava/security/Signature;"/> <method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;"/> <method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;"/> - <method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" deprecated="15"/> + <method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" deprecated="16"/> <method name="getParameters()Ljava/security/AlgorithmParameters;"/> <method name="getProvider()Ljava/security/Provider;"/> <method name="initSign(Ljava/security/PrivateKey;)V"/> <method name="initSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V"/> <method name="initVerify(Ljava/security/PublicKey;)V"/> <method name="initVerify(Ljava/security/cert/Certificate;)V"/> - <method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" deprecated="15"/> + <method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" deprecated="16"/> <method name="setParameter(Ljava/security/spec/AlgorithmParameterSpec;)V"/> <method name="sign()[B"/> <method name="sign([BII)I"/> @@ -64972,12 +62957,12 @@ <class name="java/security/SignatureSpi" since="1"> <extends name="java/lang/Object"/> <method name="<init>()V"/> - <method name="engineGetParameter(Ljava/lang/String;)Ljava/lang/Object;" deprecated="15"/> + <method name="engineGetParameter(Ljava/lang/String;)Ljava/lang/Object;" deprecated="16"/> <method name="engineGetParameters()Ljava/security/AlgorithmParameters;"/> <method name="engineInitSign(Ljava/security/PrivateKey;)V"/> <method name="engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V"/> <method name="engineInitVerify(Ljava/security/PublicKey;)V"/> - <method name="engineSetParameter(Ljava/lang/String;Ljava/lang/Object;)V" deprecated="15"/> + <method name="engineSetParameter(Ljava/lang/String;Ljava/lang/Object;)V" deprecated="16"/> <method name="engineSetParameter(Ljava/security/spec/AlgorithmParameterSpec;)V"/> <method name="engineSign()[B"/> <method name="engineSign([BII)I"/> @@ -64999,11 +62984,11 @@ </class> <class name="java/security/Signer" since="1" deprecated="3"> <extends name="java/security/Identity"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" deprecated="29"/> - <method name="getPrivateKey()Ljava/security/PrivateKey;" deprecated="29"/> - <method name="setKeyPair(Ljava/security/KeyPair;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Ljava/lang/String;)V"/> + <method name="<init>(Ljava/lang/String;Ljava/security/IdentityScope;)V"/> + <method name="getPrivateKey()Ljava/security/PrivateKey;"/> + <method name="setKeyPair(Ljava/security/KeyPair;)V"/> </class> <class name="java/security/Timestamp" since="1"> <extends name="java/lang/Object"/> @@ -65973,7 +63958,7 @@ <method name="getArray(I)Ljava/sql/Array;"/> <method name="getArray(Ljava/lang/String;)Ljava/sql/Array;"/> <method name="getBigDecimal(I)Ljava/math/BigDecimal;"/> - <method name="getBigDecimal(II)Ljava/math/BigDecimal;" deprecated="15"/> + <method name="getBigDecimal(II)Ljava/math/BigDecimal;" deprecated="16"/> <method name="getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;"/> <method name="getBlob(I)Ljava/sql/Blob;"/> <method name="getBlob(Ljava/lang/String;)Ljava/sql/Blob;"/> @@ -66413,7 +64398,7 @@ </class> <class name="java/sql/Date" since="1"> <extends name="java/util/Date"/> - <method name="<init>(III)V" deprecated="15"/> + <method name="<init>(III)V" deprecated="16"/> <method name="<init>(J)V"/> <method name="valueOf(Ljava/lang/String;)Ljava/sql/Date;"/> </class> @@ -66428,18 +64413,19 @@ </class> <class name="java/sql/DriverManager" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="deregisterDriver(Ljava/sql/Driver;)V"/> <method name="getConnection(Ljava/lang/String;)Ljava/sql/Connection;"/> <method name="getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;"/> <method name="getConnection(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;"/> <method name="getDriver(Ljava/lang/String;)Ljava/sql/Driver;"/> <method name="getDrivers()Ljava/util/Enumeration;"/> - <method name="getLogStream()Ljava/io/PrintStream;" deprecated="15"/> + <method name="getLogStream()Ljava/io/PrintStream;" deprecated="16"/> <method name="getLogWriter()Ljava/io/PrintWriter;"/> <method name="getLoginTimeout()I"/> <method name="println(Ljava/lang/String;)V"/> <method name="registerDriver(Ljava/sql/Driver;)V"/> - <method name="setLogStream(Ljava/io/PrintStream;)V" deprecated="15"/> + <method name="setLogStream(Ljava/io/PrintStream;)V" deprecated="16"/> <method name="setLogWriter(Ljava/io/PrintWriter;)V"/> <method name="setLoginTimeout(I)V"/> </class> @@ -66533,7 +64519,7 @@ <method name="setTimestamp(ILjava/sql/Timestamp;)V"/> <method name="setTimestamp(ILjava/sql/Timestamp;Ljava/util/Calendar;)V"/> <method name="setURL(ILjava/net/URL;)V"/> - <method name="setUnicodeStream(ILjava/io/InputStream;I)V" deprecated="15"/> + <method name="setUnicodeStream(ILjava/io/InputStream;I)V" deprecated="16"/> </class> <class name="java/sql/Ref" since="1"> <extends name="java/lang/Object"/> @@ -66560,9 +64546,9 @@ <method name="getAsciiStream(I)Ljava/io/InputStream;"/> <method name="getAsciiStream(Ljava/lang/String;)Ljava/io/InputStream;"/> <method name="getBigDecimal(I)Ljava/math/BigDecimal;"/> - <method name="getBigDecimal(II)Ljava/math/BigDecimal;" deprecated="15"/> + <method name="getBigDecimal(II)Ljava/math/BigDecimal;" deprecated="16"/> <method name="getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;"/> - <method name="getBigDecimal(Ljava/lang/String;I)Ljava/math/BigDecimal;" deprecated="15"/> + <method name="getBigDecimal(Ljava/lang/String;I)Ljava/math/BigDecimal;" deprecated="16"/> <method name="getBinaryStream(I)Ljava/io/InputStream;"/> <method name="getBinaryStream(Ljava/lang/String;)Ljava/io/InputStream;"/> <method name="getBlob(I)Ljava/sql/Blob;"/> @@ -66628,8 +64614,8 @@ <method name="getType()I"/> <method name="getURL(I)Ljava/net/URL;"/> <method name="getURL(Ljava/lang/String;)Ljava/net/URL;"/> - <method name="getUnicodeStream(I)Ljava/io/InputStream;" deprecated="15"/> - <method name="getUnicodeStream(Ljava/lang/String;)Ljava/io/InputStream;" deprecated="15"/> + <method name="getUnicodeStream(I)Ljava/io/InputStream;" deprecated="16"/> + <method name="getUnicodeStream(Ljava/lang/String;)Ljava/io/InputStream;" deprecated="16"/> <method name="getWarnings()Ljava/sql/SQLWarning;"/> <method name="insertRow()V"/> <method name="isAfterLast()Z"/> @@ -67108,13 +65094,13 @@ </class> <class name="java/sql/Time" since="1"> <extends name="java/util/Date"/> - <method name="<init>(III)V" deprecated="15"/> + <method name="<init>(III)V" deprecated="16"/> <method name="<init>(J)V"/> <method name="valueOf(Ljava/lang/String;)Ljava/sql/Time;"/> </class> <class name="java/sql/Timestamp" since="1"> <extends name="java/util/Date"/> - <method name="<init>(IIIIIII)V" deprecated="15"/> + <method name="<init>(IIIIIII)V" deprecated="16"/> <method name="<init>(J)V"/> <method name="after(Ljava/sql/Timestamp;)Z"/> <method name="before(Ljava/sql/Timestamp;)Z"/> @@ -67126,6 +65112,7 @@ </class> <class name="java/sql/Types" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ARRAY"/> <field name="BIGINT"/> <field name="BINARY"/> @@ -67293,6 +65280,8 @@ </class> <class name="java/text/CollationElementIterator" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/icu/text/CollationElementIterator;)V" since="29"/> <method name="getMaxExpansion(I)I"/> <method name="getOffset()I"/> <method name="next()I"/> @@ -67309,6 +65298,7 @@ <class name="java/text/CollationKey" since="1"> <extends name="java/lang/Object"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="9"/> <method name="<init>(Ljava/lang/String;)V" since="9"/> <method name="compareTo(Ljava/text/CollationKey;)I"/> <method name="getSourceString()Ljava/lang/String;"/> @@ -67560,6 +65550,7 @@ </class> <class name="java/text/Normalizer" since="9"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="isNormalized(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Z"/> <method name="normalize(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;"/> </class> @@ -67715,6 +65706,8 @@ <implements name="java/io/Serializable"/> <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/TemporalAmount"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JI)V" since="29"/> <method name="abs()Ljava/time/Duration;"/> <method name="between(Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration;"/> <method name="compareTo(Ljava/time/Duration;)I"/> @@ -67766,6 +65759,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JI)V" since="29"/> <method name="atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;"/> <method name="atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;"/> <method name="compareTo(Ljava/time/Instant;)I"/> @@ -67804,6 +65799,8 @@ <implements name="java/time/chrono/ChronoLocalDate"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(III)V" since="29"/> <method name="atStartOfDay()Ljava/time/LocalDateTime;"/> <method name="atStartOfDay(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;"/> <method name="atTime(II)Ljava/time/LocalDateTime;"/> @@ -67856,6 +65853,8 @@ <implements name="java/time/chrono/ChronoLocalDateTime"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V" since="29"/> <method name="atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;"/> <method name="atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/LocalDateTime;"/> @@ -67924,6 +65923,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(IIII)V" since="29"/> <method name="atDate(Ljava/time/LocalDate;)Ljava/time/LocalDateTime;"/> <method name="atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetTime;"/> <method name="compareTo(Ljava/time/LocalTime;)I"/> @@ -68007,6 +66008,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/TemporalAccessor"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(II)V" since="29"/> <method name="atYear(I)Ljava/time/LocalDate;"/> <method name="compareTo(Ljava/time/MonthDay;)I"/> <method name="format(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;"/> @@ -68034,6 +66037,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V" since="29"/> <method name="atZoneSameInstant(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;"/> <method name="atZoneSimilarLocal(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;"/> <method name="compareTo(Ljava/time/OffsetDateTime;)I"/> @@ -68112,6 +66117,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalTime;Ljava/time/ZoneOffset;)V" since="29"/> <method name="atDate(Ljava/time/LocalDate;)Ljava/time/OffsetDateTime;"/> <method name="compareTo(Ljava/time/OffsetTime;)I"/> <method name="format(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;"/> @@ -68161,6 +66168,8 @@ <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> <implements name="java/time/chrono/ChronoPeriod"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(III)V" since="29"/> <method name="between(Ljava/time/LocalDate;Ljava/time/LocalDate;)Ljava/time/Period;"/> <method name="from(Ljava/time/temporal/TemporalAmount;)Ljava/time/Period;"/> <method name="getChronology()Ljava/time/chrono/IsoChronology;"/> @@ -68196,6 +66205,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="atDay(I)Ljava/time/LocalDate;"/> <method name="atMonth(I)Ljava/time/YearMonth;"/> <method name="atMonth(Ljava/time/Month;)Ljava/time/YearMonth;"/> @@ -68233,6 +66244,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/Temporal"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(II)V" since="29"/> <method name="atDay(I)Ljava/time/LocalDate;"/> <method name="atEndOfMonth()Ljava/time/LocalDate;"/> <method name="compareTo(Ljava/time/YearMonth;)I"/> @@ -68270,6 +66283,7 @@ <class name="java/time/ZoneId" since="26"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;"/> <method name="getAvailableZoneIds()Ljava/util/Set;"/> <method name="getDisplayName(Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String;"/> @@ -68287,6 +66301,8 @@ <implements name="java/lang/Comparable"/> <implements name="java/time/temporal/TemporalAccessor"/> <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(I)V" since="29"/> <method name="compareTo(Ljava/time/ZoneOffset;)I"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneOffset;"/> <method name="getTotalSeconds()I"/> @@ -68304,6 +66320,8 @@ <implements name="java/io/Serializable"/> <implements name="java/time/chrono/ChronoZonedDateTime"/> <implements name="java/time/temporal/Temporal"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)V" since="29"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZonedDateTime;"/> <method name="getDayOfMonth()I"/> <method name="getDayOfWeek()Ljava/time/DayOfWeek;"/> @@ -68399,6 +66417,14 @@ <method name="with(Ljava/time/temporal/TemporalAdjuster;)Ljava/time/chrono/ChronoLocalDate;"/> <method name="with(Ljava/time/temporal/TemporalField;J)Ljava/time/chrono/ChronoLocalDate;"/> </class> + <class name="java/time/chrono/ChronoLocalDateImpl" since="26" removed="29"> + <extends name="java/lang/Object"/> + <implements name="java/io/Serializable"/> + <implements name="java/time/chrono/ChronoLocalDate"/> + <implements name="java/time/temporal/Temporal"/> + <implements name="java/time/temporal/TemporalAdjuster"/> + <method name="<init>()V"/> + </class> <class name="java/time/chrono/ChronoLocalDateTime" since="26"> <extends name="java/lang/Object"/> <implements name="java/lang/Comparable"/> @@ -68508,6 +66534,8 @@ <class name="java/time/chrono/HijrahChronology" since="26"> <extends name="java/time/chrono/AbstractChronology"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;)V" since="29"/> <method name="date(III)Ljava/time/chrono/HijrahDate;"/> <method name="date(Ljava/time/chrono/Era;III)Ljava/time/chrono/HijrahDate;"/> <method name="date(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/HijrahDate;"/> @@ -68522,11 +66550,10 @@ <field name="INSTANCE"/> </class> <class name="java/time/chrono/HijrahDate" since="26"> - <extends name="java/lang/Object"/> - <implements name="java/io/Serializable"/> - <implements name="java/time/chrono/ChronoLocalDate"/> - <implements name="java/time/temporal/Temporal"/> - <implements name="java/time/temporal/TemporalAdjuster"/> + <extends name="java/lang/Object" since="29"/> + <extends name="java/time/chrono/ChronoLocalDateImpl" removed="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/chrono/HijrahChronology;J)V" since="29"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/HijrahDate;"/> <method name="getChronology()Ljava/time/chrono/HijrahChronology;"/> <method name="getEra()Ljava/time/chrono/HijrahEra;"/> @@ -68553,6 +66580,7 @@ <class name="java/time/chrono/IsoChronology" since="26"> <extends name="java/time/chrono/AbstractChronology"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="date(III)Ljava/time/LocalDate;"/> <method name="date(Ljava/time/chrono/Era;III)Ljava/time/LocalDate;"/> <method name="date(Ljava/time/temporal/TemporalAccessor;)Ljava/time/LocalDate;"/> @@ -68582,6 +66610,7 @@ <class name="java/time/chrono/JapaneseChronology" since="26"> <extends name="java/time/chrono/AbstractChronology"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="date(III)Ljava/time/chrono/JapaneseDate;"/> <method name="date(Ljava/time/chrono/Era;III)Ljava/time/chrono/JapaneseDate;"/> <method name="date(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/JapaneseDate;"/> @@ -68596,11 +66625,10 @@ <field name="INSTANCE"/> </class> <class name="java/time/chrono/JapaneseDate" since="26"> - <extends name="java/lang/Object"/> - <implements name="java/io/Serializable"/> - <implements name="java/time/chrono/ChronoLocalDate"/> - <implements name="java/time/temporal/Temporal"/> - <implements name="java/time/temporal/TemporalAdjuster"/> + <extends name="java/lang/Object" since="29"/> + <extends name="java/time/chrono/ChronoLocalDateImpl" removed="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDate;)V" since="29"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/JapaneseDate;"/> <method name="getChronology()Ljava/time/chrono/JapaneseChronology;"/> <method name="getEra()Ljava/time/chrono/JapaneseEra;"/> @@ -68620,6 +66648,8 @@ <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> <implements name="java/time/chrono/Era"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ILjava/time/LocalDate;)V" since="29"/> <method name="of(I)Ljava/time/chrono/JapaneseEra;"/> <method name="valueOf(Ljava/lang/String;)Ljava/time/chrono/JapaneseEra;"/> <method name="values()[Ljava/time/chrono/JapaneseEra;"/> @@ -68631,6 +66661,7 @@ <class name="java/time/chrono/MinguoChronology" since="26"> <extends name="java/time/chrono/AbstractChronology"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="date(III)Ljava/time/chrono/MinguoDate;"/> <method name="date(Ljava/time/chrono/Era;III)Ljava/time/chrono/MinguoDate;"/> <method name="date(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/MinguoDate;"/> @@ -68645,11 +66676,10 @@ <field name="INSTANCE"/> </class> <class name="java/time/chrono/MinguoDate" since="26"> - <extends name="java/lang/Object"/> - <implements name="java/io/Serializable"/> - <implements name="java/time/chrono/ChronoLocalDate"/> - <implements name="java/time/temporal/Temporal"/> - <implements name="java/time/temporal/TemporalAdjuster"/> + <extends name="java/lang/Object" since="29"/> + <extends name="java/time/chrono/ChronoLocalDateImpl" removed="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDate;)V" since="29"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/MinguoDate;"/> <method name="getChronology()Ljava/time/chrono/MinguoChronology;"/> <method name="getEra()Ljava/time/chrono/MinguoEra;"/> @@ -68676,6 +66706,7 @@ <class name="java/time/chrono/ThaiBuddhistChronology" since="26"> <extends name="java/time/chrono/AbstractChronology"/> <implements name="java/io/Serializable"/> + <method name="<init>()V"/> <method name="date(III)Ljava/time/chrono/ThaiBuddhistDate;"/> <method name="date(Ljava/time/chrono/Era;III)Ljava/time/chrono/ThaiBuddhistDate;"/> <method name="date(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/ThaiBuddhistDate;"/> @@ -68690,11 +66721,10 @@ <field name="INSTANCE"/> </class> <class name="java/time/chrono/ThaiBuddhistDate" since="26"> - <extends name="java/lang/Object"/> - <implements name="java/io/Serializable"/> - <implements name="java/time/chrono/ChronoLocalDate"/> - <implements name="java/time/temporal/Temporal"/> - <implements name="java/time/temporal/TemporalAdjuster"/> + <extends name="java/lang/Object" since="29"/> + <extends name="java/time/chrono/ChronoLocalDateImpl" removed="29"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDate;)V" since="29"/> <method name="from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/chrono/ThaiBuddhistDate;"/> <method name="getChronology()Ljava/time/chrono/ThaiBuddhistChronology;"/> <method name="getEra()Ljava/time/chrono/ThaiBuddhistEra;"/> @@ -68720,6 +66750,7 @@ </class> <class name="java/time/format/DateTimeFormatter" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="format(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;"/> <method name="formatTo(Ljava/time/temporal/TemporalAccessor;Ljava/lang/Appendable;)V"/> <method name="getChronology()Ljava/time/chrono/Chronology;"/> @@ -68818,6 +66849,8 @@ </class> <class name="java/time/format/DecimalStyle" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(CCCC)V" since="29"/> <method name="getAvailableLocales()Ljava/util/Set;"/> <method name="getDecimalSeparator()C"/> <method name="getNegativeSign()C"/> @@ -68934,6 +66967,7 @@ </class> <class name="java/time/temporal/IsoFields" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="DAY_OF_QUARTER"/> <field name="QUARTER_OF_YEAR"/> <field name="QUARTER_YEARS"/> @@ -68943,6 +66977,7 @@ </class> <class name="java/time/temporal/JulianFields" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="JULIAN_DAY"/> <field name="MODIFIED_JULIAN_DAY"/> <field name="RATA_DIE"/> @@ -68973,6 +67008,7 @@ </class> <class name="java/time/temporal/TemporalAdjusters" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="dayOfWeekInMonth(ILjava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;"/> <method name="firstDayOfMonth()Ljava/time/temporal/TemporalAdjuster;"/> <method name="firstDayOfNextMonth()Ljava/time/temporal/TemporalAdjuster;"/> @@ -69011,6 +67047,7 @@ </class> <class name="java/time/temporal/TemporalQueries" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="chronology()Ljava/time/temporal/TemporalQuery;"/> <method name="localDate()Ljava/time/temporal/TemporalQuery;"/> <method name="localTime()Ljava/time/temporal/TemporalQuery;"/> @@ -69041,6 +67078,8 @@ <class name="java/time/temporal/ValueRange" since="26"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(JJJJ)V" since="29"/> <method name="checkValidIntValue(JLjava/time/temporal/TemporalField;)I"/> <method name="checkValidValue(JLjava/time/temporal/TemporalField;)J"/> <method name="getLargestMinimum()J"/> @@ -69058,6 +67097,8 @@ <class name="java/time/temporal/WeekFields" since="26"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/DayOfWeek;I)V" since="29"/> <method name="dayOfWeek()Ljava/time/temporal/TemporalField;"/> <method name="getFirstDayOfWeek()Ljava/time/DayOfWeek;"/> <method name="getMinimalDaysInFirstWeek()I"/> @@ -69075,6 +67116,8 @@ <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> <implements name="java/lang/Comparable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V" since="29"/> <method name="compareTo(Ljava/time/zone/ZoneOffsetTransition;)I"/> <method name="getDateTimeAfter()Ljava/time/LocalDateTime;"/> <method name="getDateTimeBefore()Ljava/time/LocalDateTime;"/> @@ -69091,6 +67134,8 @@ <class name="java/time/zone/ZoneOffsetTransitionRule" since="26"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V" since="29"/> <method name="createTransition(I)Ljava/time/zone/ZoneOffsetTransition;"/> <method name="getDayOfMonthIndicator()I"/> <method name="getDayOfWeek()Ljava/time/DayOfWeek;"/> @@ -69115,6 +67160,8 @@ <class name="java/time/zone/ZoneRules" since="26"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/time/ZoneOffset;)V" since="29"/> <method name="getDaylightSavings(Ljava/time/Instant;)Ljava/time/Duration;"/> <method name="getOffset(Ljava/time/Instant;)Ljava/time/ZoneOffset;"/> <method name="getOffset(Ljava/time/LocalDateTime;)Ljava/time/ZoneOffset;"/> @@ -69204,6 +67251,7 @@ </class> <class name="java/util/Arrays" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="asList([Ljava/lang/Object;)Ljava/util/List;"/> <method name="binarySearch([BB)I"/> <method name="binarySearch([BIIB)I" since="9"/> @@ -69362,6 +67410,7 @@ </class> <class name="java/util/Base64" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getDecoder()Ljava/util/Base64$Decoder;"/> <method name="getEncoder()Ljava/util/Base64$Encoder;"/> <method name="getMimeDecoder()Ljava/util/Base64$Decoder;"/> @@ -69372,6 +67421,8 @@ </class> <class name="java/util/Base64$Decoder" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(ZZ)V" since="29"/> <method name="decode(Ljava/lang/String;)[B"/> <method name="decode(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;"/> <method name="decode([B)[B"/> @@ -69380,6 +67431,8 @@ </class> <class name="java/util/Base64$Encoder" since="26"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Z[BIZ)V" since="29"/> <method name="encode(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;"/> <method name="encode([B)[B"/> <method name="encode([B[B)I"/> @@ -69577,6 +67630,7 @@ </class> <class name="java/util/Collections" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z"/> <method name="asLifoQueue(Ljava/util/Deque;)Ljava/util/Queue;" since="9"/> <method name="binarySearch(Ljava/util/List;Ljava/lang/Object;)I"/> @@ -69677,6 +67731,8 @@ <class name="java/util/Currency" since="1"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Landroid/icu/util/Currency;)V" since="29"/> <method name="getAvailableCurrencies()Ljava/util/Set;" since="19"/> <method name="getCurrencyCode()Ljava/lang/String;"/> <method name="getDefaultFractionDigits()I"/> @@ -69694,36 +67750,36 @@ <implements name="java/lang/Cloneable"/> <implements name="java/lang/Comparable"/> <method name="<init>()V"/> - <method name="<init>(III)V" deprecated="15"/> - <method name="<init>(IIIII)V" deprecated="15"/> - <method name="<init>(IIIIII)V" deprecated="15"/> + <method name="<init>(III)V" deprecated="16"/> + <method name="<init>(IIIII)V" deprecated="16"/> + <method name="<init>(IIIIII)V" deprecated="16"/> <method name="<init>(J)V"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="15"/> - <method name="UTC(IIIIII)J" deprecated="15"/> + <method name="<init>(Ljava/lang/String;)V" deprecated="16"/> + <method name="UTC(IIIIII)J" deprecated="16"/> <method name="after(Ljava/util/Date;)Z"/> <method name="before(Ljava/util/Date;)Z"/> <method name="compareTo(Ljava/util/Date;)I"/> <method name="from(Ljava/time/Instant;)Ljava/util/Date;" since="26"/> - <method name="getDate()I" deprecated="15"/> - <method name="getDay()I" deprecated="15"/> - <method name="getHours()I" deprecated="15"/> - <method name="getMinutes()I" deprecated="15"/> - <method name="getMonth()I" deprecated="15"/> - <method name="getSeconds()I" deprecated="15"/> + <method name="getDate()I" deprecated="16"/> + <method name="getDay()I" deprecated="16"/> + <method name="getHours()I" deprecated="16"/> + <method name="getMinutes()I" deprecated="16"/> + <method name="getMonth()I" deprecated="16"/> + <method name="getSeconds()I" deprecated="16"/> <method name="getTime()J"/> - <method name="getTimezoneOffset()I" deprecated="15"/> - <method name="getYear()I" deprecated="15"/> - <method name="parse(Ljava/lang/String;)J" deprecated="15"/> - <method name="setDate(I)V" deprecated="15"/> - <method name="setHours(I)V" deprecated="15"/> - <method name="setMinutes(I)V" deprecated="15"/> - <method name="setMonth(I)V" deprecated="15"/> - <method name="setSeconds(I)V" deprecated="15"/> + <method name="getTimezoneOffset()I" deprecated="16"/> + <method name="getYear()I" deprecated="16"/> + <method name="parse(Ljava/lang/String;)J" deprecated="16"/> + <method name="setDate(I)V" deprecated="16"/> + <method name="setHours(I)V" deprecated="16"/> + <method name="setMinutes(I)V" deprecated="16"/> + <method name="setMonth(I)V" deprecated="16"/> + <method name="setSeconds(I)V" deprecated="16"/> <method name="setTime(J)V"/> - <method name="setYear(I)V" deprecated="15"/> - <method name="toGMTString()Ljava/lang/String;" deprecated="15"/> + <method name="setYear(I)V" deprecated="16"/> + <method name="toGMTString()Ljava/lang/String;" deprecated="16"/> <method name="toInstant()Ljava/time/Instant;" since="26"/> - <method name="toLocaleString()Ljava/lang/String;" deprecated="15"/> + <method name="toLocaleString()Ljava/lang/String;" deprecated="16"/> </class> <class name="java/util/Deque" since="9"> <extends name="java/lang/Object"/> @@ -69791,6 +67847,8 @@ <extends name="java/util/AbstractSet"/> <implements name="java/io/Serializable"/> <implements name="java/lang/Cloneable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Class;[Ljava/lang/Enum;)V" since="29"/> <method name="allOf(Ljava/lang/Class;)Ljava/util/EnumSet;"/> <method name="clone()Ljava/util/EnumSet;"/> <method name="complementOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;"/> @@ -69838,6 +67896,7 @@ </class> <class name="java/util/FormattableFlags" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="ALTERNATE"/> <field name="LEFT_JUSTIFY"/> <field name="UPPERCASE"/> @@ -69945,6 +68004,7 @@ </class> <class name="java/util/IllegalFormatException" since="1"> <extends name="java/lang/IllegalArgumentException"/> + <method name="<init>()V"/> </class> <class name="java/util/IllegalFormatFlagsException" since="1"> <extends name="java/util/IllegalFormatException"/> @@ -70282,6 +68342,7 @@ </class> <class name="java/util/Objects" since="19"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="compare(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Comparator;)I"/> <method name="deepEquals(Ljava/lang/Object;Ljava/lang/Object;)Z"/> <method name="equals(Ljava/lang/Object;Ljava/lang/Object;)Z"/> @@ -70314,6 +68375,7 @@ </class> <class name="java/util/Optional" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="empty()Ljava/util/Optional;"/> <method name="filter(Ljava/util/function/Predicate;)Ljava/util/Optional;"/> <method name="flatMap(Ljava/util/function/Function;)Ljava/util/Optional;"/> @@ -70329,6 +68391,7 @@ </class> <class name="java/util/OptionalDouble" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="empty()Ljava/util/OptionalDouble;"/> <method name="getAsDouble()D"/> <method name="ifPresent(Ljava/util/function/DoubleConsumer;)V"/> @@ -70340,6 +68403,7 @@ </class> <class name="java/util/OptionalInt" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="empty()Ljava/util/OptionalInt;"/> <method name="getAsInt()I"/> <method name="ifPresent(Ljava/util/function/IntConsumer;)V"/> @@ -70351,6 +68415,7 @@ </class> <class name="java/util/OptionalLong" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="empty()Ljava/util/OptionalLong;"/> <method name="getAsLong()J"/> <method name="ifPresent(Ljava/util/function/LongConsumer;)V"/> @@ -70410,7 +68475,7 @@ <method name="load(Ljava/io/Reader;)V" since="9"/> <method name="loadFromXML(Ljava/io/InputStream;)V"/> <method name="propertyNames()Ljava/util/Enumeration;"/> - <method name="save(Ljava/io/OutputStream;Ljava/lang/String;)V" deprecated="15"/> + <method name="save(Ljava/io/OutputStream;Ljava/lang/String;)V" deprecated="16"/> <method name="setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;"/> <method name="store(Ljava/io/OutputStream;Ljava/lang/String;)V"/> <method name="store(Ljava/io/Writer;Ljava/lang/String;)V" since="9"/> @@ -70586,6 +68651,8 @@ <class name="java/util/ServiceLoader" since="9"> <extends name="java/lang/Object"/> <implements name="java/lang/Iterable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V" since="29"/> <method name="load(Ljava/lang/Class;)Ljava/util/ServiceLoader;"/> <method name="load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;"/> <method name="loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;"/> @@ -70682,6 +68749,7 @@ </class> <class name="java/util/Spliterators" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="emptyDoubleSpliterator()Ljava/util/Spliterator$OfDouble;"/> <method name="emptyIntSpliterator()Ljava/util/Spliterator$OfInt;"/> <method name="emptyLongSpliterator()Ljava/util/Spliterator$OfLong;"/> @@ -71146,12 +69214,19 @@ <method name="searchKeys(JLjava/util/function/Function;)Ljava/lang/Object;" since="24"/> <method name="searchValues(JLjava/util/function/Function;)Ljava/lang/Object;" since="24"/> </class> - <class name="java/util/concurrent/ConcurrentHashMap$KeySetView" since="24"> + <class name="java/util/concurrent/ConcurrentHashMap$CollectionView" since="24" removed="29"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> <implements name="java/util/Collection"/> - <implements name="java/util/Set"/> + <method name="<init>()V"/> <method name="getMap()Ljava/util/concurrent/ConcurrentHashMap;"/> + </class> + <class name="java/util/concurrent/ConcurrentHashMap$KeySetView" since="24"> + <extends name="java/lang/Object" since="29"/> + <extends name="java/util/concurrent/ConcurrentHashMap$CollectionView" removed="29"/> + <implements name="java/util/Set"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V" since="29"/> <method name="getMappedValue()Ljava/lang/Object;"/> </class> <class name="java/util/concurrent/ConcurrentLinkedDeque" since="21"> @@ -71334,6 +69409,7 @@ </class> <class name="java/util/concurrent/Executors" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="callable(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable;"/> <method name="callable(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable;"/> <method name="callable(Ljava/security/PrivilegedAction;)Ljava/util/concurrent/Callable;"/> @@ -71621,6 +69697,7 @@ </class> <class name="java/util/concurrent/ThreadLocalRandom" since="21"> <extends name="java/util/Random"/> + <method name="<init>()V"/> <method name="current()Ljava/util/concurrent/ThreadLocalRandom;"/> <method name="nextDouble(D)D"/> <method name="nextDouble(DD)D"/> @@ -71931,7 +70008,8 @@ <method name="weakCompareAndSet(Ljava/lang/Object;Ljava/lang/Object;II)Z"/> </class> <class name="java/util/concurrent/atomic/DoubleAccumulator" since="24"> - <extends name="java/lang/Number"/> + <extends name="java/lang/Number" since="29"/> + <extends name="java/util/concurrent/atomic/Striped64" removed="29"/> <method name="<init>(Ljava/util/function/DoubleBinaryOperator;D)V"/> <method name="accumulate(D)V"/> <method name="get()D"/> @@ -71939,7 +70017,8 @@ <method name="reset()V"/> </class> <class name="java/util/concurrent/atomic/DoubleAdder" since="24"> - <extends name="java/lang/Number"/> + <extends name="java/lang/Number" since="29"/> + <extends name="java/util/concurrent/atomic/Striped64" removed="29"/> <method name="<init>()V"/> <method name="add(D)V"/> <method name="reset()V"/> @@ -71947,7 +70026,8 @@ <method name="sumThenReset()D"/> </class> <class name="java/util/concurrent/atomic/LongAccumulator" since="24"> - <extends name="java/lang/Number"/> + <extends name="java/lang/Number" since="29"/> + <extends name="java/util/concurrent/atomic/Striped64" removed="29"/> <method name="<init>(Ljava/util/function/LongBinaryOperator;J)V"/> <method name="accumulate(J)V"/> <method name="get()J"/> @@ -71955,7 +70035,8 @@ <method name="reset()V"/> </class> <class name="java/util/concurrent/atomic/LongAdder" since="24"> - <extends name="java/lang/Number"/> + <extends name="java/lang/Number" since="29"/> + <extends name="java/util/concurrent/atomic/Striped64" removed="29"/> <method name="<init>()V"/> <method name="add(J)V"/> <method name="decrement()V"/> @@ -71964,6 +70045,10 @@ <method name="sum()J"/> <method name="sumThenReset()J"/> </class> + <class name="java/util/concurrent/atomic/Striped64" since="24" removed="29"> + <extends name="java/lang/Number"/> + <method name="<init>()V"/> + </class> <class name="java/util/concurrent/locks/AbstractOwnableSynchronizer" since="5"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> @@ -72078,6 +70163,7 @@ </class> <class name="java/util/concurrent/locks/LockSupport" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getBlocker(Ljava/lang/Thread;)Ljava/lang/Object;" since="9"/> <method name="park()V"/> <method name="park(Ljava/lang/Object;)V" since="9"/> @@ -72429,46 +70515,46 @@ <method name="getAttributes()Ljava/util/jar/Attributes;"/> <method name="getCertificates()[Ljava/security/cert/Certificate;"/> <method name="getCodeSigners()[Ljava/security/CodeSigner;"/> - <field name="CENATT" since="28"/> - <field name="CENATX" since="28"/> - <field name="CENCOM" since="28"/> - <field name="CENCRC" since="28"/> - <field name="CENDSK" since="28"/> - <field name="CENEXT" since="28"/> - <field name="CENFLG" since="28"/> - <field name="CENHDR" since="28"/> - <field name="CENHOW" since="28"/> - <field name="CENLEN" since="28"/> - <field name="CENNAM" since="28"/> - <field name="CENOFF" since="28"/> - <field name="CENSIG" since="28"/> - <field name="CENSIZ" since="28"/> - <field name="CENTIM" since="28"/> - <field name="CENVEM" since="28"/> - <field name="CENVER" since="28"/> - <field name="ENDCOM" since="28"/> - <field name="ENDHDR" since="28"/> - <field name="ENDOFF" since="28"/> - <field name="ENDSIG" since="28"/> - <field name="ENDSIZ" since="28"/> - <field name="ENDSUB" since="28"/> - <field name="ENDTOT" since="28"/> - <field name="EXTCRC" since="28"/> - <field name="EXTHDR" since="28"/> - <field name="EXTLEN" since="28"/> - <field name="EXTSIG" since="28"/> - <field name="EXTSIZ" since="28"/> - <field name="LOCCRC" since="28"/> - <field name="LOCEXT" since="28"/> - <field name="LOCFLG" since="28"/> - <field name="LOCHDR" since="28"/> - <field name="LOCHOW" since="28"/> - <field name="LOCLEN" since="28"/> - <field name="LOCNAM" since="28"/> - <field name="LOCSIG" since="28"/> - <field name="LOCSIZ" since="28"/> - <field name="LOCTIM" since="28"/> - <field name="LOCVER" since="28"/> + <field name="CENATT" since="29"/> + <field name="CENATX" since="29"/> + <field name="CENCOM" since="29"/> + <field name="CENCRC" since="29"/> + <field name="CENDSK" since="29"/> + <field name="CENEXT" since="29"/> + <field name="CENFLG" since="29"/> + <field name="CENHDR" since="29"/> + <field name="CENHOW" since="29"/> + <field name="CENLEN" since="29"/> + <field name="CENNAM" since="29"/> + <field name="CENOFF" since="29"/> + <field name="CENSIG" since="29"/> + <field name="CENSIZ" since="29"/> + <field name="CENTIM" since="29"/> + <field name="CENVEM" since="29"/> + <field name="CENVER" since="29"/> + <field name="ENDCOM" since="29"/> + <field name="ENDHDR" since="29"/> + <field name="ENDOFF" since="29"/> + <field name="ENDSIG" since="29"/> + <field name="ENDSIZ" since="29"/> + <field name="ENDSUB" since="29"/> + <field name="ENDTOT" since="29"/> + <field name="EXTCRC" since="29"/> + <field name="EXTHDR" since="29"/> + <field name="EXTLEN" since="29"/> + <field name="EXTSIG" since="29"/> + <field name="EXTSIZ" since="29"/> + <field name="LOCCRC" since="29"/> + <field name="LOCEXT" since="29"/> + <field name="LOCFLG" since="29"/> + <field name="LOCHDR" since="29"/> + <field name="LOCHOW" since="29"/> + <field name="LOCLEN" since="29"/> + <field name="LOCNAM" since="29"/> + <field name="LOCSIG" since="29"/> + <field name="LOCSIZ" since="29"/> + <field name="LOCTIM" since="29"/> + <field name="LOCVER" since="29"/> </class> <class name="java/util/jar/JarException" since="1"> <extends name="java/util/zip/ZipException"/> @@ -72484,46 +70570,46 @@ <method name="<init>(Ljava/lang/String;Z)V"/> <method name="getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;"/> <method name="getManifest()Ljava/util/jar/Manifest;"/> - <field name="CENATT" since="28"/> - <field name="CENATX" since="28"/> - <field name="CENCOM" since="28"/> - <field name="CENCRC" since="28"/> - <field name="CENDSK" since="28"/> - <field name="CENEXT" since="28"/> - <field name="CENFLG" since="28"/> - <field name="CENHDR" since="28"/> - <field name="CENHOW" since="28"/> - <field name="CENLEN" since="28"/> - <field name="CENNAM" since="28"/> - <field name="CENOFF" since="28"/> - <field name="CENSIG" since="28"/> - <field name="CENSIZ" since="28"/> - <field name="CENTIM" since="28"/> - <field name="CENVEM" since="28"/> - <field name="CENVER" since="28"/> - <field name="ENDCOM" since="28"/> - <field name="ENDHDR" since="28"/> - <field name="ENDOFF" since="28"/> - <field name="ENDSIG" since="28"/> - <field name="ENDSIZ" since="28"/> - <field name="ENDSUB" since="28"/> - <field name="ENDTOT" since="28"/> - <field name="EXTCRC" since="28"/> - <field name="EXTHDR" since="28"/> - <field name="EXTLEN" since="28"/> - <field name="EXTSIG" since="28"/> - <field name="EXTSIZ" since="28"/> - <field name="LOCCRC" since="28"/> - <field name="LOCEXT" since="28"/> - <field name="LOCFLG" since="28"/> - <field name="LOCHDR" since="28"/> - <field name="LOCHOW" since="28"/> - <field name="LOCLEN" since="28"/> - <field name="LOCNAM" since="28"/> - <field name="LOCSIG" since="28"/> - <field name="LOCSIZ" since="28"/> - <field name="LOCTIM" since="28"/> - <field name="LOCVER" since="28"/> + <field name="CENATT" since="29"/> + <field name="CENATX" since="29"/> + <field name="CENCOM" since="29"/> + <field name="CENCRC" since="29"/> + <field name="CENDSK" since="29"/> + <field name="CENEXT" since="29"/> + <field name="CENFLG" since="29"/> + <field name="CENHDR" since="29"/> + <field name="CENHOW" since="29"/> + <field name="CENLEN" since="29"/> + <field name="CENNAM" since="29"/> + <field name="CENOFF" since="29"/> + <field name="CENSIG" since="29"/> + <field name="CENSIZ" since="29"/> + <field name="CENTIM" since="29"/> + <field name="CENVEM" since="29"/> + <field name="CENVER" since="29"/> + <field name="ENDCOM" since="29"/> + <field name="ENDHDR" since="29"/> + <field name="ENDOFF" since="29"/> + <field name="ENDSIG" since="29"/> + <field name="ENDSIZ" since="29"/> + <field name="ENDSUB" since="29"/> + <field name="ENDTOT" since="29"/> + <field name="EXTCRC" since="29"/> + <field name="EXTHDR" since="29"/> + <field name="EXTLEN" since="29"/> + <field name="EXTSIG" since="29"/> + <field name="EXTSIZ" since="29"/> + <field name="LOCCRC" since="29"/> + <field name="LOCEXT" since="29"/> + <field name="LOCFLG" since="29"/> + <field name="LOCHDR" since="29"/> + <field name="LOCHOW" since="29"/> + <field name="LOCLEN" since="29"/> + <field name="LOCNAM" since="29"/> + <field name="LOCSIG" since="29"/> + <field name="LOCSIZ" since="29"/> + <field name="LOCTIM" since="29"/> + <field name="LOCVER" since="29"/> <field name="MANIFEST_NAME"/> </class> <class name="java/util/jar/JarInputStream" since="1"> @@ -72532,91 +70618,91 @@ <method name="<init>(Ljava/io/InputStream;Z)V"/> <method name="getManifest()Ljava/util/jar/Manifest;"/> <method name="getNextJarEntry()Ljava/util/jar/JarEntry;"/> - <field name="CENATT" since="28"/> - <field name="CENATX" since="28"/> - <field name="CENCOM" since="28"/> - <field name="CENCRC" since="28"/> - <field name="CENDSK" since="28"/> - <field name="CENEXT" since="28"/> - <field name="CENFLG" since="28"/> - <field name="CENHDR" since="28"/> - <field name="CENHOW" since="28"/> - <field name="CENLEN" since="28"/> - <field name="CENNAM" since="28"/> - <field name="CENOFF" since="28"/> - <field name="CENSIG" since="28"/> - <field name="CENSIZ" since="28"/> - <field name="CENTIM" since="28"/> - <field name="CENVEM" since="28"/> - <field name="CENVER" since="28"/> - <field name="ENDCOM" since="28"/> - <field name="ENDHDR" since="28"/> - <field name="ENDOFF" since="28"/> - <field name="ENDSIG" since="28"/> - <field name="ENDSIZ" since="28"/> - <field name="ENDSUB" since="28"/> - <field name="ENDTOT" since="28"/> - <field name="EXTCRC" since="28"/> - <field name="EXTHDR" since="28"/> - <field name="EXTLEN" since="28"/> - <field name="EXTSIG" since="28"/> - <field name="EXTSIZ" since="28"/> - <field name="LOCCRC" since="28"/> - <field name="LOCEXT" since="28"/> - <field name="LOCFLG" since="28"/> - <field name="LOCHDR" since="28"/> - <field name="LOCHOW" since="28"/> - <field name="LOCLEN" since="28"/> - <field name="LOCNAM" since="28"/> - <field name="LOCSIG" since="28"/> - <field name="LOCSIZ" since="28"/> - <field name="LOCTIM" since="28"/> - <field name="LOCVER" since="28"/> + <field name="CENATT" since="29"/> + <field name="CENATX" since="29"/> + <field name="CENCOM" since="29"/> + <field name="CENCRC" since="29"/> + <field name="CENDSK" since="29"/> + <field name="CENEXT" since="29"/> + <field name="CENFLG" since="29"/> + <field name="CENHDR" since="29"/> + <field name="CENHOW" since="29"/> + <field name="CENLEN" since="29"/> + <field name="CENNAM" since="29"/> + <field name="CENOFF" since="29"/> + <field name="CENSIG" since="29"/> + <field name="CENSIZ" since="29"/> + <field name="CENTIM" since="29"/> + <field name="CENVEM" since="29"/> + <field name="CENVER" since="29"/> + <field name="ENDCOM" since="29"/> + <field name="ENDHDR" since="29"/> + <field name="ENDOFF" since="29"/> + <field name="ENDSIG" since="29"/> + <field name="ENDSIZ" since="29"/> + <field name="ENDSUB" since="29"/> + <field name="ENDTOT" since="29"/> + <field name="EXTCRC" since="29"/> + <field name="EXTHDR" since="29"/> + <field name="EXTLEN" since="29"/> + <field name="EXTSIG" since="29"/> + <field name="EXTSIZ" since="29"/> + <field name="LOCCRC" since="29"/> + <field name="LOCEXT" since="29"/> + <field name="LOCFLG" since="29"/> + <field name="LOCHDR" since="29"/> + <field name="LOCHOW" since="29"/> + <field name="LOCLEN" since="29"/> + <field name="LOCNAM" since="29"/> + <field name="LOCSIG" since="29"/> + <field name="LOCSIZ" since="29"/> + <field name="LOCTIM" since="29"/> + <field name="LOCVER" since="29"/> </class> <class name="java/util/jar/JarOutputStream" since="1"> <extends name="java/util/zip/ZipOutputStream"/> <method name="<init>(Ljava/io/OutputStream;)V"/> <method name="<init>(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V"/> - <field name="CENATT" since="28"/> - <field name="CENATX" since="28"/> - <field name="CENCOM" since="28"/> - <field name="CENCRC" since="28"/> - <field name="CENDSK" since="28"/> - <field name="CENEXT" since="28"/> - <field name="CENFLG" since="28"/> - <field name="CENHDR" since="28"/> - <field name="CENHOW" since="28"/> - <field name="CENLEN" since="28"/> - <field name="CENNAM" since="28"/> - <field name="CENOFF" since="28"/> - <field name="CENSIG" since="28"/> - <field name="CENSIZ" since="28"/> - <field name="CENTIM" since="28"/> - <field name="CENVEM" since="28"/> - <field name="CENVER" since="28"/> - <field name="ENDCOM" since="28"/> - <field name="ENDHDR" since="28"/> - <field name="ENDOFF" since="28"/> - <field name="ENDSIG" since="28"/> - <field name="ENDSIZ" since="28"/> - <field name="ENDSUB" since="28"/> - <field name="ENDTOT" since="28"/> - <field name="EXTCRC" since="28"/> - <field name="EXTHDR" since="28"/> - <field name="EXTLEN" since="28"/> - <field name="EXTSIG" since="28"/> - <field name="EXTSIZ" since="28"/> - <field name="LOCCRC" since="28"/> - <field name="LOCEXT" since="28"/> - <field name="LOCFLG" since="28"/> - <field name="LOCHDR" since="28"/> - <field name="LOCHOW" since="28"/> - <field name="LOCLEN" since="28"/> - <field name="LOCNAM" since="28"/> - <field name="LOCSIG" since="28"/> - <field name="LOCSIZ" since="28"/> - <field name="LOCTIM" since="28"/> - <field name="LOCVER" since="28"/> + <field name="CENATT" since="29"/> + <field name="CENATX" since="29"/> + <field name="CENCOM" since="29"/> + <field name="CENCRC" since="29"/> + <field name="CENDSK" since="29"/> + <field name="CENEXT" since="29"/> + <field name="CENFLG" since="29"/> + <field name="CENHDR" since="29"/> + <field name="CENHOW" since="29"/> + <field name="CENLEN" since="29"/> + <field name="CENNAM" since="29"/> + <field name="CENOFF" since="29"/> + <field name="CENSIG" since="29"/> + <field name="CENSIZ" since="29"/> + <field name="CENTIM" since="29"/> + <field name="CENVEM" since="29"/> + <field name="CENVER" since="29"/> + <field name="ENDCOM" since="29"/> + <field name="ENDHDR" since="29"/> + <field name="ENDOFF" since="29"/> + <field name="ENDSIG" since="29"/> + <field name="ENDSIZ" since="29"/> + <field name="ENDSUB" since="29"/> + <field name="ENDTOT" since="29"/> + <field name="EXTCRC" since="29"/> + <field name="EXTHDR" since="29"/> + <field name="EXTLEN" since="29"/> + <field name="EXTSIG" since="29"/> + <field name="EXTSIZ" since="29"/> + <field name="LOCCRC" since="29"/> + <field name="LOCEXT" since="29"/> + <field name="LOCFLG" since="29"/> + <field name="LOCHDR" since="29"/> + <field name="LOCHOW" since="29"/> + <field name="LOCLEN" since="29"/> + <field name="LOCNAM" since="29"/> + <field name="LOCSIG" since="29"/> + <field name="LOCSIZ" since="29"/> + <field name="LOCTIM" since="29"/> + <field name="LOCVER" since="29"/> </class> <class name="java/util/jar/Manifest" since="1"> <extends name="java/lang/Object"/> @@ -72633,6 +70719,7 @@ </class> <class name="java/util/jar/Pack200" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="newPacker()Ljava/util/jar/Pack200$Packer;"/> <method name="newUnpacker()Ljava/util/jar/Pack200$Unpacker;"/> </class> @@ -72860,7 +70947,7 @@ <method name="warning(Ljava/lang/String;)V"/> <method name="warning(Ljava/util/function/Supplier;)V" since="26"/> <field name="GLOBAL_LOGGER_NAME" since="9"/> - <field name="global" deprecated="15"/> + <field name="global" deprecated="16"/> </class> <class name="java/util/logging/LoggingMXBean" since="1"> <extends name="java/lang/Object"/> @@ -73016,6 +71103,8 @@ <class name="java/util/regex/Matcher" since="1"> <extends name="java/lang/Object"/> <implements name="java/util/regex/MatchResult"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V" since="29"/> <method name="appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;"/> <method name="appendTail(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;"/> <method name="end(Ljava/lang/String;)I" since="26"/> @@ -73046,6 +71135,8 @@ <class name="java/util/regex/Pattern" since="1"> <extends name="java/lang/Object"/> <implements name="java/io/Serializable"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;I)V" since="29"/> <method name="asPredicate()Ljava/util/function/Predicate;" since="24"/> <method name="compile(Ljava/lang/String;)Ljava/util/regex/Pattern;"/> <method name="compile(Ljava/lang/String;I)Ljava/util/regex/Pattern;"/> @@ -73105,6 +71196,7 @@ </class> <class name="java/util/stream/Collectors" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="averagingDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/Collector;"/> <method name="averagingInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/Collector;"/> <method name="averagingLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/Collector;"/> @@ -73351,6 +71443,7 @@ </class> <class name="java/util/stream/StreamSupport" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="doubleStream(Ljava/util/Spliterator$OfDouble;Z)Ljava/util/stream/DoubleStream;"/> <method name="doubleStream(Ljava/util/function/Supplier;IZ)Ljava/util/stream/DoubleStream;"/> <method name="intStream(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;"/> @@ -75227,13 +73320,10 @@ <method name="beginHandshake()V"/> <method name="closeInbound()V"/> <method name="closeOutbound()V"/> - <method name="getApplicationProtocol()Ljava/lang/String;" since="29"/> <method name="getDelegatedTask()Ljava/lang/Runnable;"/> <method name="getEnableSessionCreation()Z"/> <method name="getEnabledCipherSuites()[Ljava/lang/String;"/> <method name="getEnabledProtocols()[Ljava/lang/String;"/> - <method name="getHandshakeApplicationProtocol()Ljava/lang/String;" since="29"/> - <method name="getHandshakeApplicationProtocolSelector()Ljava/util/function/BiFunction;" since="29"/> <method name="getHandshakeSession()Ljavax/net/ssl/SSLSession;" since="24"/> <method name="getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;"/> <method name="getNeedClientAuth()Z"/> @@ -75250,7 +73340,6 @@ <method name="setEnableSessionCreation(Z)V"/> <method name="setEnabledCipherSuites([Ljava/lang/String;)V"/> <method name="setEnabledProtocols([Ljava/lang/String;)V"/> - <method name="setHandshakeApplicationProtocolSelector(Ljava/util/function/BiFunction;)V" since="29"/> <method name="setNeedClientAuth(Z)V"/> <method name="setSSLParameters(Ljavax/net/ssl/SSLParameters;)V" since="9"/> <method name="setUseClientMode(Z)V"/> @@ -75309,7 +73398,6 @@ <method name="<init>([Ljava/lang/String;)V"/> <method name="<init>([Ljava/lang/String;[Ljava/lang/String;)V"/> <method name="getAlgorithmConstraints()Ljava/security/AlgorithmConstraints;" since="24"/> - <method name="getApplicationProtocols()[Ljava/lang/String;" since="29"/> <method name="getCipherSuites()[Ljava/lang/String;"/> <method name="getEndpointIdentificationAlgorithm()Ljava/lang/String;" since="24"/> <method name="getNeedClientAuth()Z"/> @@ -75319,7 +73407,6 @@ <method name="getUseCipherSuitesOrder()Z" since="24"/> <method name="getWantClientAuth()Z"/> <method name="setAlgorithmConstraints(Ljava/security/AlgorithmConstraints;)V" since="24"/> - <method name="setApplicationProtocols([Ljava/lang/String;)V" since="29"/> <method name="setCipherSuites([Ljava/lang/String;)V"/> <method name="setEndpointIdentificationAlgorithm(Ljava/lang/String;)V" since="24"/> <method name="setNeedClientAuth(Z)V"/> @@ -75424,12 +73511,9 @@ <method name="<init>(Ljava/net/InetAddress;I)V"/> <method name="<init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V"/> <method name="addHandshakeCompletedListener(Ljavax/net/ssl/HandshakeCompletedListener;)V"/> - <method name="getApplicationProtocol()Ljava/lang/String;" since="29"/> <method name="getEnableSessionCreation()Z"/> <method name="getEnabledCipherSuites()[Ljava/lang/String;"/> <method name="getEnabledProtocols()[Ljava/lang/String;"/> - <method name="getHandshakeApplicationProtocol()Ljava/lang/String;" since="29"/> - <method name="getHandshakeApplicationProtocolSelector()Ljava/util/function/BiFunction;" since="29"/> <method name="getHandshakeSession()Ljavax/net/ssl/SSLSession;" since="24"/> <method name="getNeedClientAuth()Z"/> <method name="getSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9"/> @@ -75442,7 +73526,6 @@ <method name="setEnableSessionCreation(Z)V"/> <method name="setEnabledCipherSuites([Ljava/lang/String;)V"/> <method name="setEnabledProtocols([Ljava/lang/String;)V"/> - <method name="setHandshakeApplicationProtocolSelector(Ljava/util/function/BiFunction;)V" since="29"/> <method name="setNeedClientAuth(Z)V"/> <method name="setSSLParameters(Ljavax/net/ssl/SSLParameters;)V" since="9"/> <method name="setUseClientMode(Z)V"/> @@ -75458,6 +73541,7 @@ </class> <class name="javax/net/ssl/StandardConstants" since="24"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="SNI_HOST_NAME"/> </class> <class name="javax/net/ssl/TrustManager" since="1"> @@ -75888,7 +73972,7 @@ </class> <class name="javax/xml/XMLConstants" since="1"> <extends name="java/lang/Object"/> - <method name="<init>()V" removed="8"/> + <method name="<init>()V"/> <field name="DEFAULT_NS_PREFIX"/> <field name="FEATURE_SECURE_PROCESSING"/> <field name="NULL_NS_URI"/> @@ -75911,6 +73995,7 @@ </class> <class name="javax/xml/datatype/DatatypeConstants" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="APRIL"/> <field name="AUGUST"/> <field name="DATE"/> @@ -75950,6 +74035,8 @@ </class> <class name="javax/xml/datatype/DatatypeConstants$Field" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V" removed="29"/> + <method name="<init>(Ljava/lang/String;I)V" since="29"/> <method name="getId()I"/> </class> <class name="javax/xml/datatype/DatatypeFactory" since="8"> @@ -76171,6 +74258,7 @@ </class> <class name="javax/xml/transform/OutputKeys" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="CDATA_SECTION_ELEMENTS"/> <field name="DOCTYPE_PUBLIC"/> <field name="DOCTYPE_SYSTEM"/> @@ -76478,6 +74566,7 @@ </class> <class name="javax/xml/xpath/XPathConstants" since="8"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BOOLEAN"/> <field name="DOM_OBJECT_MODEL"/> <field name="NODE"/> @@ -76716,6 +74805,7 @@ </class> <class name="junit/runner/Version" since="1" removed="28"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="id()Ljava/lang/String;"/> </class> <class name="org/apache/commons/logging/Log" since="1" deprecated="22" removed="23"> @@ -77058,6 +75148,7 @@ </class> <class name="org/apache/http/auth/AUTH" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="PROXY_AUTH"/> <field name="PROXY_AUTH_RESP"/> <field name="WWW_AUTH"/> @@ -77177,6 +75268,7 @@ </class> <class name="org/apache/http/auth/params/AuthParams" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getCredentialCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;"/> <method name="setCredentialCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V"/> </class> @@ -77357,6 +75449,7 @@ </class> <class name="org/apache/http/client/params/AuthPolicy" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BASIC"/> <field name="DIGEST"/> <field name="NTLM"/> @@ -77392,6 +75485,7 @@ </class> <class name="org/apache/http/client/params/CookiePolicy" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <field name="BEST_MATCH"/> <field name="BROWSER_COMPATIBILITY"/> <field name="NETSCAPE"/> @@ -77400,6 +75494,7 @@ </class> <class name="org/apache/http/client/params/HttpClientParams" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getCookiePolicy(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;"/> <method name="isAuthenticating(Lorg/apache/http/params/HttpParams;)Z"/> <method name="isRedirecting(Lorg/apache/http/params/HttpParams;)Z"/> @@ -77457,10 +75552,12 @@ </class> <class name="org/apache/http/client/utils/CloneUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="clone(Ljava/lang/Object;)Ljava/lang/Object;"/> </class> <class name="org/apache/http/client/utils/URIUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createURI(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/URI;"/> <method name="resolve(Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;"/> <method name="resolve(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;"/> @@ -77519,8 +75616,8 @@ </class> <class name="org/apache/http/conn/ConnectTimeoutException" since="1" deprecated="22"> <extends name="java/io/InterruptedIOException"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Ljava/lang/String;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Ljava/lang/String;)V"/> </class> <class name="org/apache/http/conn/ConnectionKeepAliveStrategy" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> @@ -77579,6 +75676,7 @@ <class name="org/apache/http/conn/MultihomePlainSocketFactory" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> <implements name="org/apache/http/conn/scheme/SocketFactory"/> + <method name="<init>()V"/> <method name="getSocketFactory()Lorg/apache/http/conn/MultihomePlainSocketFactory;"/> </class> <class name="org/apache/http/conn/OperatedClientConnection" since="1" deprecated="22" removed="23"> @@ -77657,6 +75755,7 @@ <class name="org/apache/http/conn/params/ConnRouteParams" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> <implements name="org/apache/http/conn/params/ConnRoutePNames"/> + <method name="<init>()V"/> <method name="getDefaultProxy(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/HttpHost;"/> <method name="getForcedRoute(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/conn/routing/HttpRoute;"/> <method name="getLocalAddress(Lorg/apache/http/params/HttpParams;)Ljava/net/InetAddress;"/> @@ -77742,12 +75841,12 @@ </class> <class name="org/apache/http/conn/scheme/HostNameResolver" since="1" deprecated="22"> <extends name="java/lang/Object"/> - <method name="resolve(Ljava/lang/String;)Ljava/net/InetAddress;" deprecated="29"/> + <method name="resolve(Ljava/lang/String;)Ljava/net/InetAddress;"/> </class> <class name="org/apache/http/conn/scheme/LayeredSocketFactory" since="1" deprecated="22"> <extends name="java/lang/Object"/> <implements name="org/apache/http/conn/scheme/SocketFactory"/> - <method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" deprecated="29"/> + <method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;"/> </class> <class name="org/apache/http/conn/scheme/PlainSocketFactory" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> @@ -77778,58 +75877,59 @@ </class> <class name="org/apache/http/conn/scheme/SocketFactory" since="1" deprecated="22"> <extends name="java/lang/Object"/> - <method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;" deprecated="29"/> - <method name="createSocket()Ljava/net/Socket;" deprecated="29"/> - <method name="isSecure(Ljava/net/Socket;)Z" deprecated="29"/> + <method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;"/> + <method name="createSocket()Ljava/net/Socket;"/> + <method name="isSecure(Ljava/net/Socket;)Z"/> </class> <class name="org/apache/http/conn/ssl/AbstractVerifier" since="1" deprecated="22"> <extends name="java/lang/Object"/> <implements name="org/apache/http/conn/ssl/X509HostnameVerifier"/> - <method name="<init>()V" deprecated="29"/> - <method name="acceptableCountryWildcard(Ljava/lang/String;)Z" deprecated="29"/> - <method name="countDots(Ljava/lang/String;)I" deprecated="29"/> - <method name="getCNs(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;" deprecated="29"/> - <method name="getDNSSubjectAlts(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;" deprecated="29"/> - <method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Z)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="acceptableCountryWildcard(Ljava/lang/String;)Z"/> + <method name="countDots(Ljava/lang/String;)I"/> + <method name="getCNs(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;"/> + <method name="getDNSSubjectAlts(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;"/> + <method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Z)V"/> </class> <class name="org/apache/http/conn/ssl/AllowAllHostnameVerifier" since="1" deprecated="22"> <extends name="org/apache/http/conn/ssl/AbstractVerifier"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> </class> <class name="org/apache/http/conn/ssl/BrowserCompatHostnameVerifier" since="1" deprecated="22"> <extends name="org/apache/http/conn/ssl/AbstractVerifier"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> </class> <class name="org/apache/http/conn/ssl/SSLSocketFactory" since="1" deprecated="22"> <extends name="java/lang/Object"/> <implements name="org/apache/http/conn/scheme/LayeredSocketFactory"/> - <method name="<init>(Ljava/lang/String;Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;Ljava/security/SecureRandom;Lorg/apache/http/conn/scheme/HostNameResolver;)V" deprecated="29"/> - <method name="<init>(Ljava/security/KeyStore;)V" deprecated="29"/> - <method name="<init>(Ljava/security/KeyStore;Ljava/lang/String;)V" deprecated="29"/> - <method name="<init>(Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;)V" deprecated="29"/> - <method name="getHostnameVerifier()Lorg/apache/http/conn/ssl/X509HostnameVerifier;" deprecated="29"/> - <method name="getSocketFactory()Lorg/apache/http/conn/ssl/SSLSocketFactory;" deprecated="29"/> - <method name="setHostnameVerifier(Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V" deprecated="29"/> - <field name="ALLOW_ALL_HOSTNAME_VERIFIER" deprecated="29"/> - <field name="BROWSER_COMPATIBLE_HOSTNAME_VERIFIER" deprecated="29"/> - <field name="SSL" deprecated="29"/> - <field name="SSLV2" deprecated="29"/> - <field name="STRICT_HOSTNAME_VERIFIER" deprecated="29"/> - <field name="TLS" deprecated="29"/> + <method name="<init>(Ljava/lang/String;Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;Ljava/security/SecureRandom;Lorg/apache/http/conn/scheme/HostNameResolver;)V"/> + <method name="<init>(Ljava/security/KeyStore;)V"/> + <method name="<init>(Ljava/security/KeyStore;Ljava/lang/String;)V"/> + <method name="<init>(Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;)V"/> + <method name="getHostnameVerifier()Lorg/apache/http/conn/ssl/X509HostnameVerifier;"/> + <method name="getSocketFactory()Lorg/apache/http/conn/ssl/SSLSocketFactory;"/> + <method name="setHostnameVerifier(Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V"/> + <field name="ALLOW_ALL_HOSTNAME_VERIFIER"/> + <field name="BROWSER_COMPATIBLE_HOSTNAME_VERIFIER"/> + <field name="SSL"/> + <field name="SSLV2"/> + <field name="STRICT_HOSTNAME_VERIFIER"/> + <field name="TLS"/> </class> <class name="org/apache/http/conn/ssl/StrictHostnameVerifier" since="1" deprecated="22"> <extends name="org/apache/http/conn/ssl/AbstractVerifier"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> </class> <class name="org/apache/http/conn/ssl/X509HostnameVerifier" since="1" deprecated="22"> <extends name="java/lang/Object"/> <implements name="javax/net/ssl/HostnameVerifier"/> - <method name="verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)V" deprecated="29"/> - <method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSocket;)V" deprecated="29"/> - <method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" deprecated="29"/> + <method name="verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)V"/> + <method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSocket;)V"/> + <method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V"/> </class> <class name="org/apache/http/conn/util/InetAddressUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="isIPv4Address(Ljava/lang/String;)Z"/> <method name="isIPv6Address(Ljava/lang/String;)Z"/> <method name="isIPv6HexCompressedAddress(Ljava/lang/String;)Z"/> @@ -78724,6 +76824,7 @@ </class> <class name="org/apache/http/impl/cookie/DateUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="formatDate(Ljava/util/Date;)Ljava/lang/String;"/> <method name="formatDate(Ljava/util/Date;Ljava/lang/String;)Ljava/lang/String;"/> <method name="parseDate(Ljava/lang/String;)Ljava/util/Date;"/> @@ -79211,14 +77312,14 @@ </class> <class name="org/apache/http/params/CoreConnectionPNames" since="1" deprecated="22"> <extends name="java/lang/Object"/> - <field name="CONNECTION_TIMEOUT" deprecated="29"/> - <field name="MAX_HEADER_COUNT" deprecated="29"/> - <field name="MAX_LINE_LENGTH" deprecated="29"/> - <field name="SOCKET_BUFFER_SIZE" deprecated="29"/> - <field name="SO_LINGER" deprecated="29"/> - <field name="SO_TIMEOUT" deprecated="29"/> - <field name="STALE_CONNECTION_CHECK" deprecated="29"/> - <field name="TCP_NODELAY" deprecated="29"/> + <field name="CONNECTION_TIMEOUT"/> + <field name="MAX_HEADER_COUNT"/> + <field name="MAX_LINE_LENGTH"/> + <field name="SOCKET_BUFFER_SIZE"/> + <field name="SO_LINGER"/> + <field name="SO_TIMEOUT"/> + <field name="STALE_CONNECTION_CHECK"/> + <field name="TCP_NODELAY"/> </class> <class name="org/apache/http/params/CoreProtocolPNames" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> @@ -79254,35 +77355,36 @@ <class name="org/apache/http/params/HttpConnectionParams" since="1" deprecated="22"> <extends name="java/lang/Object"/> <implements name="org/apache/http/params/CoreConnectionPNames"/> - <method name="getConnectionTimeout(Lorg/apache/http/params/HttpParams;)I" deprecated="29"/> - <method name="getLinger(Lorg/apache/http/params/HttpParams;)I" deprecated="29"/> - <method name="getSoTimeout(Lorg/apache/http/params/HttpParams;)I" deprecated="29"/> - <method name="getSocketBufferSize(Lorg/apache/http/params/HttpParams;)I" deprecated="29"/> - <method name="getTcpNoDelay(Lorg/apache/http/params/HttpParams;)Z" deprecated="29"/> - <method name="isStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;)Z" deprecated="29"/> - <method name="setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V" deprecated="29"/> - <method name="setLinger(Lorg/apache/http/params/HttpParams;I)V" deprecated="29"/> - <method name="setSoTimeout(Lorg/apache/http/params/HttpParams;I)V" deprecated="29"/> - <method name="setSocketBufferSize(Lorg/apache/http/params/HttpParams;I)V" deprecated="29"/> - <method name="setStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;Z)V" deprecated="29"/> - <method name="setTcpNoDelay(Lorg/apache/http/params/HttpParams;Z)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="getConnectionTimeout(Lorg/apache/http/params/HttpParams;)I"/> + <method name="getLinger(Lorg/apache/http/params/HttpParams;)I"/> + <method name="getSoTimeout(Lorg/apache/http/params/HttpParams;)I"/> + <method name="getSocketBufferSize(Lorg/apache/http/params/HttpParams;)I"/> + <method name="getTcpNoDelay(Lorg/apache/http/params/HttpParams;)Z"/> + <method name="isStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;)Z"/> + <method name="setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V"/> + <method name="setLinger(Lorg/apache/http/params/HttpParams;I)V"/> + <method name="setSoTimeout(Lorg/apache/http/params/HttpParams;I)V"/> + <method name="setSocketBufferSize(Lorg/apache/http/params/HttpParams;I)V"/> + <method name="setStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;Z)V"/> + <method name="setTcpNoDelay(Lorg/apache/http/params/HttpParams;Z)V"/> </class> <class name="org/apache/http/params/HttpParams" since="1" deprecated="22"> <extends name="java/lang/Object"/> - <method name="copy()Lorg/apache/http/params/HttpParams;" deprecated="29"/> - <method name="getBooleanParameter(Ljava/lang/String;Z)Z" deprecated="29"/> - <method name="getDoubleParameter(Ljava/lang/String;D)D" deprecated="29"/> - <method name="getIntParameter(Ljava/lang/String;I)I" deprecated="29"/> - <method name="getLongParameter(Ljava/lang/String;J)J" deprecated="29"/> - <method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" deprecated="29"/> - <method name="isParameterFalse(Ljava/lang/String;)Z" deprecated="29"/> - <method name="isParameterTrue(Ljava/lang/String;)Z" deprecated="29"/> - <method name="removeParameter(Ljava/lang/String;)Z" deprecated="29"/> - <method name="setBooleanParameter(Ljava/lang/String;Z)Lorg/apache/http/params/HttpParams;" deprecated="29"/> - <method name="setDoubleParameter(Ljava/lang/String;D)Lorg/apache/http/params/HttpParams;" deprecated="29"/> - <method name="setIntParameter(Ljava/lang/String;I)Lorg/apache/http/params/HttpParams;" deprecated="29"/> - <method name="setLongParameter(Ljava/lang/String;J)Lorg/apache/http/params/HttpParams;" deprecated="29"/> - <method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;" deprecated="29"/> + <method name="copy()Lorg/apache/http/params/HttpParams;"/> + <method name="getBooleanParameter(Ljava/lang/String;Z)Z"/> + <method name="getDoubleParameter(Ljava/lang/String;D)D"/> + <method name="getIntParameter(Ljava/lang/String;I)I"/> + <method name="getLongParameter(Ljava/lang/String;J)J"/> + <method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;"/> + <method name="isParameterFalse(Ljava/lang/String;)Z"/> + <method name="isParameterTrue(Ljava/lang/String;)Z"/> + <method name="removeParameter(Ljava/lang/String;)Z"/> + <method name="setBooleanParameter(Ljava/lang/String;Z)Lorg/apache/http/params/HttpParams;"/> + <method name="setDoubleParameter(Ljava/lang/String;D)Lorg/apache/http/params/HttpParams;"/> + <method name="setIntParameter(Ljava/lang/String;I)Lorg/apache/http/params/HttpParams;"/> + <method name="setLongParameter(Ljava/lang/String;J)Lorg/apache/http/params/HttpParams;"/> + <method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;"/> </class> <class name="org/apache/http/params/HttpProtocolParamBean" since="1" deprecated="22" removed="23"> <extends name="org/apache/http/params/HttpAbstractParamBean"/> @@ -79296,6 +77398,7 @@ <class name="org/apache/http/params/HttpProtocolParams" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> <implements name="org/apache/http/params/CoreProtocolPNames"/> + <method name="<init>()V"/> <method name="getContentCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;"/> <method name="getHttpElementCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;"/> <method name="getUserAgent(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;"/> @@ -79347,6 +77450,7 @@ </class> <class name="org/apache/http/protocol/HTTP" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="isWhitespace(C)Z"/> <field name="ASCII"/> <field name="CHARSET_PARAM"/> @@ -79420,7 +77524,7 @@ <extends name="java/lang/Object"/> <implements name="org/apache/http/protocol/HttpRequestHandlerResolver"/> <method name="<init>()V"/> - <method name="matchUriRequestPattern(Ljava/lang/String;Ljava/lang/String;)Z" deprecated="15"/> + <method name="matchUriRequestPattern(Ljava/lang/String;Ljava/lang/String;)Z" deprecated="16"/> <method name="register(Ljava/lang/String;Lorg/apache/http/protocol/HttpRequestHandler;)V"/> <method name="setHandlers(Ljava/util/Map;)V"/> <method name="unregister(Ljava/lang/String;)V"/> @@ -79571,6 +77675,7 @@ </class> <class name="org/apache/http/util/EncodingUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getAsciiBytes(Ljava/lang/String;)[B"/> <method name="getAsciiString([B)Ljava/lang/String;"/> <method name="getAsciiString([BII)Ljava/lang/String;"/> @@ -79580,6 +77685,7 @@ </class> <class name="org/apache/http/util/EntityUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="getContentCharSet(Lorg/apache/http/HttpEntity;)Ljava/lang/String;"/> <method name="toByteArray(Lorg/apache/http/HttpEntity;)[B"/> <method name="toString(Lorg/apache/http/HttpEntity;)Ljava/lang/String;"/> @@ -79587,10 +77693,12 @@ </class> <class name="org/apache/http/util/ExceptionUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="initCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)V"/> </class> <class name="org/apache/http/util/LangUtils" since="1" deprecated="22" removed="23"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="equals(Ljava/lang/Object;Ljava/lang/Object;)Z"/> <method name="equals([Ljava/lang/Object;[Ljava/lang/Object;)Z"/> <method name="hashCode(II)I"/> @@ -80151,12 +78259,12 @@ </class> <class name="org/xml/sax/AttributeList" since="1" deprecated="9"> <extends name="java/lang/Object"/> - <method name="getLength()I" deprecated="29"/> - <method name="getName(I)Ljava/lang/String;" deprecated="29"/> - <method name="getType(I)Ljava/lang/String;" deprecated="29"/> - <method name="getType(Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> - <method name="getValue(I)Ljava/lang/String;" deprecated="29"/> - <method name="getValue(Ljava/lang/String;)Ljava/lang/String;" deprecated="29"/> + <method name="getLength()I"/> + <method name="getName(I)Ljava/lang/String;"/> + <method name="getType(I)Ljava/lang/String;"/> + <method name="getType(Ljava/lang/String;)Ljava/lang/String;"/> + <method name="getValue(I)Ljava/lang/String;"/> + <method name="getValue(Ljava/lang/String;)Ljava/lang/String;"/> </class> <class name="org/xml/sax/Attributes" since="1"> <extends name="java/lang/Object"/> @@ -80194,14 +78302,14 @@ </class> <class name="org/xml/sax/DocumentHandler" since="1" deprecated="9"> <extends name="java/lang/Object"/> - <method name="characters([CII)V" deprecated="29"/> - <method name="endDocument()V" deprecated="29"/> - <method name="endElement(Ljava/lang/String;)V" deprecated="29"/> - <method name="ignorableWhitespace([CII)V" deprecated="29"/> - <method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" deprecated="29"/> - <method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" deprecated="29"/> - <method name="startDocument()V" deprecated="29"/> - <method name="startElement(Ljava/lang/String;Lorg/xml/sax/AttributeList;)V" deprecated="29"/> + <method name="characters([CII)V"/> + <method name="endDocument()V"/> + <method name="endElement(Ljava/lang/String;)V"/> + <method name="ignorableWhitespace([CII)V"/> + <method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="setDocumentLocator(Lorg/xml/sax/Locator;)V"/> + <method name="startDocument()V"/> + <method name="startElement(Ljava/lang/String;Lorg/xml/sax/AttributeList;)V"/> </class> <class name="org/xml/sax/EntityResolver" since="1"> <extends name="java/lang/Object"/> @@ -80219,7 +78327,7 @@ <implements name="org/xml/sax/DocumentHandler"/> <implements name="org/xml/sax/EntityResolver"/> <implements name="org/xml/sax/ErrorHandler"/> - <method name="<init>()V" deprecated="29"/> + <method name="<init>()V"/> </class> <class name="org/xml/sax/InputSource" since="1"> <extends name="java/lang/Object"/> @@ -80247,13 +78355,13 @@ </class> <class name="org/xml/sax/Parser" since="1" deprecated="9"> <extends name="java/lang/Object"/> - <method name="parse(Ljava/lang/String;)V" deprecated="29"/> - <method name="parse(Lorg/xml/sax/InputSource;)V" deprecated="29"/> - <method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" deprecated="29"/> - <method name="setDocumentHandler(Lorg/xml/sax/DocumentHandler;)V" deprecated="29"/> - <method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" deprecated="29"/> - <method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" deprecated="29"/> - <method name="setLocale(Ljava/util/Locale;)V" deprecated="29"/> + <method name="parse(Ljava/lang/String;)V"/> + <method name="parse(Lorg/xml/sax/InputSource;)V"/> + <method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V"/> + <method name="setDocumentHandler(Lorg/xml/sax/DocumentHandler;)V"/> + <method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V"/> + <method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V"/> + <method name="setLocale(Ljava/util/Locale;)V"/> </class> <class name="org/xml/sax/SAXException" since="1"> <extends name="java/lang/Exception"/> @@ -80372,12 +78480,12 @@ <class name="org/xml/sax/helpers/AttributeListImpl" since="1" deprecated="9"> <extends name="java/lang/Object"/> <implements name="org/xml/sax/AttributeList"/> - <method name="<init>()V" deprecated="29"/> - <method name="<init>(Lorg/xml/sax/AttributeList;)V" deprecated="29"/> - <method name="addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" deprecated="29"/> - <method name="clear()V" deprecated="29"/> - <method name="removeAttribute(Ljava/lang/String;)V" deprecated="29"/> - <method name="setAttributeList(Lorg/xml/sax/AttributeList;)V" deprecated="29"/> + <method name="<init>()V"/> + <method name="<init>(Lorg/xml/sax/AttributeList;)V"/> + <method name="addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"/> + <method name="clear()V"/> + <method name="removeAttribute(Ljava/lang/String;)V"/> + <method name="setAttributeList(Lorg/xml/sax/AttributeList;)V"/> </class> <class name="org/xml/sax/helpers/AttributesImpl" since="1"> <extends name="java/lang/Object"/> @@ -80440,8 +78548,9 @@ </class> <class name="org/xml/sax/helpers/ParserFactory" since="1" deprecated="9"> <extends name="java/lang/Object"/> - <method name="makeParser()Lorg/xml/sax/Parser;" deprecated="29"/> - <method name="makeParser(Ljava/lang/String;)Lorg/xml/sax/Parser;" deprecated="29"/> + <method name="<init>()V"/> + <method name="makeParser()Lorg/xml/sax/Parser;"/> + <method name="makeParser(Ljava/lang/String;)Lorg/xml/sax/Parser;"/> </class> <class name="org/xml/sax/helpers/XMLFilterImpl" since="1"> <extends name="java/lang/Object"/> @@ -80462,6 +78571,7 @@ </class> <class name="org/xml/sax/helpers/XMLReaderFactory" since="1"> <extends name="java/lang/Object"/> + <method name="<init>()V"/> <method name="createXMLReader()Lorg/xml/sax/XMLReader;"/> <method name="createXMLReader(Ljava/lang/String;)Lorg/xml/sax/XMLReader;"/> </class>
diff --git a/dmtracedump b/dmtracedump index bc1704c..81b0376 100755 --- a/dmtracedump +++ b/dmtracedump Binary files differ
diff --git a/e2fsdroid b/e2fsdroid index 56a9225..94e6ca6 100755 --- a/e2fsdroid +++ b/e2fsdroid Binary files differ
diff --git a/etc1tool b/etc1tool index f4a1390..7b11a2d 100755 --- a/etc1tool +++ b/etc1tool Binary files differ
diff --git a/fastboot b/fastboot index bb8b97b..e511ef2 100755 --- a/fastboot +++ b/fastboot Binary files differ
diff --git a/hprof-conv b/hprof-conv index 08ae0a1..3d4a729 100755 --- a/hprof-conv +++ b/hprof-conv Binary files differ
diff --git a/lib64/libc++.dylib b/lib64/libc++.dylib deleted file mode 100755 index e694612..0000000 --- a/lib64/libc++.dylib +++ /dev/null Binary files differ
diff --git a/make_f2fs b/make_f2fs index 2782b05..f5c77f6 100755 --- a/make_f2fs +++ b/make_f2fs Binary files differ
diff --git a/mke2fs b/mke2fs index c1d173d..d5fd034 100755 --- a/mke2fs +++ b/mke2fs Binary files differ
diff --git a/sload_f2fs b/sload_f2fs index faa6788..2fe3d5a 100755 --- a/sload_f2fs +++ b/sload_f2fs Binary files differ
diff --git a/source.properties b/source.properties index b3206d8..2f6b7b0 100644 --- a/source.properties +++ b/source.properties
@@ -1,2 +1,2 @@ Pkg.UserSrc=false -Pkg.Revision=29.0.5 +Pkg.Revision=28.0.1
diff --git a/sqlite3 b/sqlite3 index 7f00c4d..1b21595 100755 --- a/sqlite3 +++ b/sqlite3 Binary files differ
diff --git a/systrace/UPSTREAM_REVISION b/systrace/UPSTREAM_REVISION index 2856b7a..872cc65 100644 --- a/systrace/UPSTREAM_REVISION +++ b/systrace/UPSTREAM_REVISION
@@ -1 +1 @@ -cad35e22dcad126c6a20663ded101565e6326d82 +3fe65c60e0314212730f3e5363a58dfda949d761
diff --git a/systrace/catapult/common/battor/battor/__init__.py b/systrace/catapult/common/battor/battor/__init__.py new file mode 100644 index 0000000..f18f330 --- /dev/null +++ b/systrace/catapult/common/battor/battor/__init__.py
@@ -0,0 +1,27 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +import os +import sys + +def _JoinPath(*path_parts): + return os.path.abspath(os.path.join(*path_parts)) + + +def _AddDirToPythonPath(*path_parts): + path = _JoinPath(*path_parts) + if os.path.isdir(path) and path not in sys.path: + # Some call sites that use Telemetry assume that sys.path[0] is the + # directory containing the script, so we add these extra paths to right + # after sys.path[0]. + sys.path.insert(1, path) + +_CATAPULT_DIR = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + os.path.pardir, os.path.pardir, os.path.pardir) + +_AddDirToPythonPath(_CATAPULT_DIR, 'common', 'battor') +_AddDirToPythonPath(_CATAPULT_DIR, 'common', 'py_utils') +_AddDirToPythonPath(_CATAPULT_DIR, 'dependency_manager') +_AddDirToPythonPath(_CATAPULT_DIR, 'devil') +_AddDirToPythonPath(_CATAPULT_DIR, 'third_party', 'pyserial')
diff --git a/systrace/catapult/common/battor/battor/battor_binary_dependencies.json b/systrace/catapult/common/battor/battor/battor_binary_dependencies.json new file mode 100644 index 0000000..23be1a3 --- /dev/null +++ b/systrace/catapult/common/battor/battor/battor_binary_dependencies.json
@@ -0,0 +1,100 @@ +{ + "config_type": "BaseConfig", + "dependencies": { + "avrdude_binary": { + "cloud_storage_base_folder": "binary_dependencies/battor", + "cloud_storage_bucket": "chromium-telemetry", + "file_info": { + "mac_x86_64": { + "cloud_storage_hash": "6de6324c279ea75c79c68cab4c2ddcc68da1b286", + "download_path": "../bin/darwin/x86_64/avrdude", + "local_paths": [ + "../bin/override/avrdude" + ] + }, + "linux_x86_64": { + "cloud_storage_hash": "db29526605f6f95a75ab33f4060b8c330152de69", + "download_path": "../bin/linux/x86_64/avrdude", + "local_paths": [ + "../bin/override/avrdude" + ] + }, + "win_AMD64": { + "cloud_storage_hash": "517aa73b093e254007076cf5ac7afb94151df2ed", + "download_path": "../bin/win/x86_64/avrdude.exe", + "local_paths": [ + "../bin/override/avrdude.exe" + ] + }, + "win_x86": { + "cloud_storage_hash": "517aa73b093e254007076cf5ac7afb94151df2ed", + "download_path": "../bin/win/x86_64/avrdude.exe", + "local_paths": [ + "../bin/override/avrdude.exe" + ] + } + } + }, + "avrdude_config": { + "cloud_storage_base_folder": "binary_dependencies/battor", + "cloud_storage_bucket": "chromium-telemetry", + "file_info": { + "default": { + "cloud_storage_hash": "ccdfa12743429b8b92b61a20163d6311ab55a4fa", + "download_path": "../bin/battor/avrdude.conf", + "local_paths": [ + "../bin/override/avrdude.conf" + ] + } + } + }, + "battor_agent_binary": { + "cloud_storage_base_folder": "binary_dependencies/battor", + "cloud_storage_bucket": "chromium-telemetry", + "file_info": { + "mac_x86_64": { + "cloud_storage_hash": "154613804a1855a4871422bf99aa8e0dd0d7f62e", + "download_path": "../bin/darwin/x86_64/battor_agent", + "local_paths": [ + "../bin/override/battor_agent" + ] + }, + "linux_x86_64": { + "cloud_storage_hash": "f53e15b97301e9dab00e893800ec67a98e9f13ea", + "download_path": "../bin/linux/x86_64/battor_agent", + "local_paths": [ + "../bin/override/battor_agent" + ] + }, + "win_AMD64": { + "cloud_storage_hash": "4095a9159dd189ec591679e43b14d34ae30335eb", + "download_path": "../bin/win/x86_64/battor_agent.exe", + "local_paths": [ + "../bin/override/battor_agent.exe" + ] + }, + "win_x86": { + "cloud_storage_hash": "4095a9159dd189ec591679e43b14d34ae30335eb", + "download_path": "../bin/win/x86_64/battor_agent.exe", + "local_paths": [ + "../bin/override/battor_agent.exe" + ] + } + } + }, + "battor_firmware": { + "cloud_storage_base_folder": "binary_dependencies/battor", + "cloud_storage_bucket": "chromium-telemetry", + "file_info": { + "default": { + "cloud_storage_hash": "0649655f78698368a16a4e9ec37967b80528fdbf", + "download_path": "../bin/battor/battor_firmware.hex", + "local_paths": [ + "../bin/override/battor_firmware.hex" + ], + "version_in_cs": "de05458" + } + } + } + } +}
diff --git a/systrace/catapult/common/battor/battor/battor_error.py b/systrace/catapult/common/battor/battor/battor_error.py new file mode 100644 index 0000000..3ea6efc --- /dev/null +++ b/systrace/catapult/common/battor/battor/battor_error.py
@@ -0,0 +1,8 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +from devil import base_error + +class BattOrError(base_error.BaseError): + pass
diff --git a/systrace/catapult/common/battor/battor/battor_wrapper.py b/systrace/catapult/common/battor/battor/battor_wrapper.py new file mode 100644 index 0000000..93aed8b --- /dev/null +++ b/systrace/catapult/common/battor/battor/battor_wrapper.py
@@ -0,0 +1,436 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import datetime +import os +import logging +import platform +import random +import subprocess +import sys +import tempfile +import time + +from battor import battor_error +import py_utils +from py_utils import atexit_with_log +from py_utils import cloud_storage +import dependency_manager +from devil.utils import battor_device_mapping +from devil.utils import find_usb_devices + +import serial +from serial.tools import list_ports + + +DEFAULT_SHELL_CLOSE_TIMEOUT_S = 60 + + +def IsBattOrConnected(*args, **kwargs): + """Returns True if BattOr is detected. + + See _IsBattOrConnected below for arguments. + """ + is_connected = _IsBattOrConnected(*args, **kwargs) + if is_connected: + logging.info('BattOr power monitor is connected.') + else: + logging.info('BattOr power monitor is not connected.') + return is_connected + + +def _IsBattOrConnected(test_platform, android_device=None, + android_device_map=None, android_device_file=None): + """Returns True if BattOr is detected.""" + if test_platform == 'android': + if not android_device: + raise ValueError('Must pass android device serial when determining ' + 'support on android platform') + + if not android_device_map: + device_tree = find_usb_devices.GetBusNumberToDeviceTreeMap() + if device_tree: + for _, node in sorted(device_tree.iteritems()): + node.Display() + if len(battor_device_mapping.GetBattOrList(device_tree)) == 1: + return True + if android_device_file: + android_device_map = battor_device_mapping.ReadSerialMapFile( + android_device_file) + else: + try: + android_device_map = battor_device_mapping.GenerateSerialMap() + except battor_error.BattOrError: + return False + + # If neither if statement above is triggered, it means that an + # android_device_map was passed in and will be used. + return str(android_device) in android_device_map + + elif test_platform == 'win': + for (_1, desc, _2) in serial.tools.list_ports.comports(): + if 'USB Serial Port' in desc: + return True + logging.info('No usb serial port discovered. Available ones are: %s' % + list(serial.tools.list_ports.comports())) + return False + + elif test_platform == 'mac': + for (_1, desc, _2) in serial.tools.list_ports.comports(): + if 'BattOr' in desc: + return True + return False + + elif test_platform == 'linux': + device_tree = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=True) + return bool(battor_device_mapping.GetBattOrList(device_tree)) + + return False + + +class BattOrWrapper(object): + """A class for communicating with a BattOr in python.""" + _EXIT_CMD = 'Exit' + _GET_FIRMWARE_GIT_HASH_CMD = 'GetFirmwareGitHash' + _START_TRACING_CMD = 'StartTracing' + _STOP_TRACING_CMD = 'StopTracing' + _SUPPORTS_CLOCKSYNC_CMD = 'SupportsExplicitClockSync' + _RECORD_CLOCKSYNC_CMD = 'RecordClockSyncMarker' + _SUPPORTED_PLATFORMS = ['android', 'chromeos', 'linux', 'mac', 'win'] + + _BATTOR_PARTNO = 'x192a3u' + _BATTOR_PROGRAMMER = 'avr109' + _BATTOR_BAUDRATE = '115200' + + def __init__(self, target_platform, android_device=None, battor_path=None, + battor_map_file=None, battor_map=None, serial_log_bucket=None, + autoflash=True): + """Constructor. + + Args: + target_platform: Platform BattOr is attached to. + android_device: Serial number of Android device. + battor_path: Path to BattOr device. + battor_map_file: File giving map of [device serial: BattOr path] + battor_map: Map of [device serial: BattOr path] + serial_log_bucket: The cloud storage bucket to which BattOr agent serial + logs are uploaded on failure. + + Attributes: + _battor_path: Path to BattOr. Typically similar to /tty/USB0. + _battor_agent_binary: Path to the BattOr agent binary used to communicate + with the BattOr. + _tracing: A bool saying if tracing has been started. + _battor_shell: A subprocess running the battor_agent_binary + _trace_results_path: Path to BattOr trace results file. + _serial_log_bucket: Cloud storage bucket to which BattOr agent serial logs + are uploaded on failure. + _serial_log_file: Temp file for the BattOr agent serial log. + """ + self._battor_path = self._GetBattOrPath(target_platform, android_device, + battor_path, battor_map_file, battor_map) + config = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + 'battor_binary_dependencies.json') + + self._dm = dependency_manager.DependencyManager( + [dependency_manager.BaseConfig(config)]) + self._battor_agent_binary = self._dm.FetchPath( + 'battor_agent_binary', + '%s_%s' % (py_utils.GetHostOsName(), py_utils.GetHostArchName())) + + self._autoflash = autoflash + self._serial_log_bucket = serial_log_bucket + self._tracing = False + self._battor_shell = None + self._trace_results_path = None + self._start_tracing_time = None + self._stop_tracing_time = None + self._trace_results = None + self._serial_log_file = None + self._target_platform = target_platform + self._git_hash = None + + atexit_with_log.Register(self.KillBattOrShell) + + def _FlashBattOr(self): + assert self._battor_shell, ( + 'Must start shell before attempting to flash BattOr') + + try: + device_git_hash = self.GetFirmwareGitHash() + battor_firmware, cs_git_hash = self._dm.FetchPathWithVersion( + 'battor_firmware', 'default') + if cs_git_hash != device_git_hash: + logging.info( + 'Flashing BattOr with old firmware version <%s> with new ' + 'version <%s>.', device_git_hash, cs_git_hash) + avrdude_config = self._dm.FetchPath('avrdude_config', 'default') + self.StopShell() + return self.FlashFirmware(battor_firmware, avrdude_config) + return False + except ValueError: + logging.exception('Git hash returned from BattOr was not as expected: %s' + % self._git_hash) + self.StopShell() + + finally: + if not self._battor_shell: + # TODO(charliea): Once we understand why BattOrs are crashing, remove + # this log. + # http://crbug.com/699581 + logging.info('_FlashBattOr serial log:') + self._UploadSerialLogToCloudStorage() + self._serial_log_file = None + + self.StartShell() + + def KillBattOrShell(self): + if self._battor_shell: + logging.critical('BattOr shell was not properly closed. Killing now.') + self._battor_shell.kill() + + def GetShellReturnCode(self): + """Gets the return code of the BattOr agent shell.""" + rc = self._battor_shell.poll() + return rc + + def StartShell(self): + """Start BattOr binary shell.""" + assert not self._battor_shell, 'Attempting to start running BattOr shell.' + + battor_cmd = [self._battor_agent_binary] + if self._serial_log_bucket: + # Create and immediately close a temp file in order to get a filename + # for the serial log. + self._serial_log_file = tempfile.NamedTemporaryFile(delete=False) + self._serial_log_file.close() + battor_cmd.append('--battor-serial-log=%s' % self._serial_log_file.name) + if self._battor_path: + battor_cmd.append('--battor-path=%s' % self._battor_path) + self._battor_shell = self._StartShellImpl(battor_cmd) + assert self.GetShellReturnCode() is None, 'Shell failed to start.' + + def StopShell(self, timeout=None): + """Stop BattOr binary shell.""" + assert self._battor_shell, 'Attempting to stop a non-running BattOr shell.' + assert not self._tracing, 'Attempting to stop a BattOr shell while tracing.' + timeout = timeout if timeout else DEFAULT_SHELL_CLOSE_TIMEOUT_S + + try: + self._SendBattOrCommand(self._EXIT_CMD, check_return=False) + py_utils.WaitFor(lambda: self.GetShellReturnCode() != None, timeout) + except: + # If graceful shutdown failed, resort to a simple kill command. + self.KillBattOrShell() + finally: + self._battor_shell = None + + def StartTracing(self): + """Start tracing on the BattOr.""" + assert self._battor_shell, 'Must start shell before tracing' + assert not self._tracing, 'Tracing already started.' + self._FlashBattOr() + self._SendBattOrCommand(self._START_TRACING_CMD) + self._tracing = True + self._start_tracing_time = int(time.time()) + + def StopTracing(self): + """Stop tracing on the BattOr.""" + assert self._tracing, 'Must run StartTracing before StopTracing' + # Create temp file to reserve location for saving results. + temp_file = tempfile.NamedTemporaryFile(delete=False) + self._trace_results_path = temp_file.name + temp_file.close() + self._SendBattOrCommand( + '%s %s' % (self._STOP_TRACING_CMD, self._trace_results_path)) + self._tracing = False + self._stop_tracing_time = int(time.time()) + + def CollectTraceData(self, timeout=None): + """Collect trace data from battor. + Args: + timeout: timeout for waiting on the BattOr process to terminate in + seconds. + Returns: Trace data in form of a list. + """ + if not self._stop_tracing_time or not self._start_tracing_time: + raise battor_error.BattOrError( + 'No start or stop time detected when collecting BattOr trace.\n' + 'Start: %s \n Stop: %s' % (self._start_tracing_time, + self._stop_tracing_time)) + + # The BattOr shell terminates after returning the results. + if timeout is None: + timeout = self._stop_tracing_time - self._start_tracing_time + py_utils.WaitFor(lambda: self.GetShellReturnCode() != None, timeout) + + # TODO(charliea): Once we understand why BattOrs are crashing, only do + # this on failure. + # http://crbug.com/699581 + logging.info('CollectTraceData serial log:') + self._UploadSerialLogToCloudStorage() + + with open(self._trace_results_path) as results: + self._trace_results = results.read() + self._battor_shell = None + self._serial_log_file = None + return self._trace_results + + def SupportsExplicitClockSync(self): + """Returns if BattOr supports Clock Sync events.""" + return bool(int(self._SendBattOrCommand(self._SUPPORTS_CLOCKSYNC_CMD, + check_return=False))) + + def RecordClockSyncMarker(self, sync_id): + """Record clock sync event on BattOr.""" + if not isinstance(sync_id, basestring): + raise TypeError('sync_id must be a string.') + self._SendBattOrCommand('%s %s' % (self._RECORD_CLOCKSYNC_CMD, sync_id)) + + def _GetBattOrPath(self, target_platform, android_device=None, + battor_path=None, battor_map_file=None, battor_map=None): + """Determines most likely path to the correct BattOr.""" + if target_platform not in self._SUPPORTED_PLATFORMS: + raise battor_error.BattOrError( + '%s is an unsupported platform.' % target_platform) + if target_platform in ['win']: + # Right now, the BattOr agent binary isn't able to automatically detect + # the BattOr port on Windows. To get around this, we know that the BattOr + # shows up with a name of 'USB Serial Port', so use the COM port that + # corresponds to a device with that name. + for (port, desc, _) in serial.tools.list_ports.comports(): + if 'USB Serial Port' in desc: + return port + raise battor_error.BattOrError( + 'Could not find BattOr attached to machine.') + if target_platform in ['mac']: + for (port, desc, _) in serial.tools.list_ports.comports(): + if 'BattOr' in desc: + return port + + if target_platform in ['android', 'linux']: + if battor_path: + if not isinstance(battor_path, basestring): + raise battor_error.BattOrError( + 'An invalid BattOr path was specified.') + return battor_path + + if target_platform == 'android': + if not android_device: + raise battor_error.BattOrError( + 'Must specify device for Android platform.') + if not battor_map_file and not battor_map: + # No map was passed, so must create one. + battor_map = battor_device_mapping.GenerateSerialMap() + + return battor_device_mapping.GetBattOrPathFromPhoneSerial( + str(android_device), serial_map_file=battor_map_file, + serial_map=battor_map) + + # Not Android and no explicitly passed BattOr. + device_tree = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=True) + battors = battor_device_mapping.GetBattOrList(device_tree) + if len(battors) != 1: + raise battor_error.BattOrError( + 'For non-Android platforms, exactly one BattOr must be ' + 'attached unless address is explicitly given.') + return '/dev/%s' % battors.pop() + + raise NotImplementedError( + 'BattOr Wrapper not implemented for given platform') + + def _SendBattOrCommandImpl(self, cmd): + """Sends command to the BattOr.""" + self._battor_shell.stdin.write('%s\n' % cmd) + self._battor_shell.stdin.flush() + return self._battor_shell.stdout.readline() + + def _SendBattOrCommand(self, cmd, check_return=True): + status = self._SendBattOrCommandImpl(cmd) + + if check_return and not 'Done.' in status: + self.KillBattOrShell() + self._UploadSerialLogToCloudStorage() + self._serial_log_file = None + raise battor_error.BattOrError( + 'BattOr did not complete command \'%s\' correctly.\n' + 'Outputted: %s' % (cmd, status)) + return status + + def _StartShellImpl(self, battor_cmd): + return subprocess.Popen( + battor_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, shell=False) + + def _UploadSerialLogToCloudStorage(self): + """Uploads the BattOr serial log to cloud storage.""" + if not self._serial_log_file or not cloud_storage.IsNetworkIOEnabled(): + return + + remote_path = ('battor-serial-log-%s-%d.txt' % ( + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M.txt'), + random.randint(1, 100000))) + + try: + cloud_url = cloud_storage.Insert( + self._serial_log_bucket, remote_path, self._serial_log_file.name) + sys.stderr.write('View BattOr serial log at %s\n' % cloud_url) + except cloud_storage.PermissionError as e: + logging.error('Cannot upload BattOr serial log file to cloud storage due ' + 'to permission error: %s' % e.message) + + def GetFirmwareGitHash(self): + """Gets the git hash for the BattOr firmware. + + Returns: Git hash for firmware currently on the BattOr. + Also sets self._git_hash to this value. + + Raises: ValueException if the git hash is not in hex. + """ + assert self._battor_shell, ('Must start shell before getting firmware git ' + 'hash') + self._git_hash = self._SendBattOrCommand(self._GET_FIRMWARE_GIT_HASH_CMD, + check_return=False).strip() + # We expect the git hash to be a valid 6 character hexstring. This will + # throw a ValueError exception otherwise. + int(self._git_hash, 16) + return self._git_hash + + def FlashFirmware(self, hex_path, avrdude_config_path): + """Flashes the BattOr using an avrdude config at config_path with the new + firmware at hex_path. + """ + assert not self._battor_shell, 'Cannot flash BattOr with open shell' + + avrdude_binary = self._dm.FetchPath( + 'avrdude_binary', '%s_%s' % (sys.platform, platform.machine())) + # Sanitize hex file path for windows. It contains <drive>:/ which avrdude + # is not capable of handling. + _, hex_path = os.path.splitdrive(hex_path) + avr_cmd = [ + avrdude_binary, + '-e', # Specify to erase data on chip. + '-p', self._BATTOR_PARTNO, # Specify AVR device. + # Specify which microcontroller programmer to use. + '-c', self._BATTOR_PROGRAMMER, + '-b', self._BATTOR_BAUDRATE, # Specify the baud rate to communicate at. + '-P', self._battor_path, # Serial path to the battor. + # Command to execute with hex file and path to hex file. + '-U', 'flash:w:%s' % hex_path, + '-C', avrdude_config_path, # AVRdude config file path. + '2>&1' # All output goes to stderr for some reason. + ] + try: + subprocess.check_output(avr_cmd) + except subprocess.CalledProcessError as e: + raise BattOrFlashError('BattOr flash failed with return code %s.' + % e.returncode) + + self._git_hash = None + return True + + +class BattOrFlashError(Exception): + pass
diff --git a/systrace/catapult/common/battor/battor/battor_wrapper_devicetest.py b/systrace/catapult/common/battor/battor/battor_wrapper_devicetest.py new file mode 100644 index 0000000..29c36e7 --- /dev/null +++ b/systrace/catapult/common/battor/battor/battor_wrapper_devicetest.py
@@ -0,0 +1,103 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import logging +import platform +import os +import sys +import time +import unittest + +if __name__ == '__main__': + sys.path.append( + os.path.join(os.path.dirname(__file__), '..')) + +from battor import battor_wrapper +from devil.utils import battor_device_mapping +from devil.utils import find_usb_devices +import py_utils +from py_utils import cloud_storage + + +_SUPPORTED_CQ_PLATFORMS = ['win', 'linux', 'mac'] + +class BattOrWrapperDeviceTest(unittest.TestCase): + def setUp(self): + self._platform = py_utils.GetHostOsName() + self._battor_list = None + + if self._platform == 'linux': + device_tree = find_usb_devices.GetBusNumberToDeviceTreeMap() + self._battor_list = battor_device_mapping.GetBattOrList(device_tree) + + if not battor_wrapper.IsBattOrConnected(self._platform): + self._battor_list = [] + + def testFullRun(self): + # If battor_list is an empty list, a BattOr was expected but not found. + if self._battor_list is not None and not self._battor_list: + logging.critical('No BattOrs attached. Cannot run tests.') + return + + if self._platform not in _SUPPORTED_CQ_PLATFORMS: + logging.critical('Platform %s is not supported on CQ.' % self._platform) + return + + + battor_path = (None if not self._battor_list + else '/dev/%s' % self._battor_list[0]) + battor = battor_wrapper.BattOrWrapper( + self._platform, battor_path=battor_path, + serial_log_bucket=cloud_storage.TELEMETRY_OUTPUT) + try: + battor.StartShell() + self.assertTrue(isinstance(battor.GetFirmwareGitHash(), basestring)) + # We expect the git hash to be a valid 6 character hexstring. This will + # throw a ValueError exception otherwise. + int(battor.GetFirmwareGitHash(), 16) + self.assertTrue(len(battor.GetFirmwareGitHash()) == 7) + battor.StopShell() + + battor.StartShell() + battor.StartTracing() + # TODO(rnephew): This sleep is required for now because crbug.com/602266 + # causes the BattOr to crash when the trace time is too short. Once that + # bug is fixed, we should remove this delay. + time.sleep(1) + battor.RecordClockSyncMarker('abc') + # Sleep here because clock sync marker will be flaky if not. + time.sleep(1) + battor.StopTracing() + + # Below is a work around for crbug.com/603309. On this short of a trace, 5 + # seconds is enough to ensure that the trace will finish flushing to the + # file. The process is then killed so that BattOrWrapper knows that the + # process has been closed after tracing stops. + if self._platform == 'win': + time.sleep(5) + battor._battor_shell.kill() + results = battor.CollectTraceData().splitlines() + except: + if battor._battor_shell is not None: + battor._battor_shell.kill() + battor._battor_shell = None + raise + + self.assertTrue('# BattOr' in results[0]) + self.assertTrue('# voltage_range' in results[1]) + self.assertTrue('# current_range' in results[2]) + self.assertTrue('# sample_rate' in results[3]) + # First line with results. Should be 3 'words'. + self.assertTrue(len(results[4].split()) == 3) + clock_sync_found = False + for entry in results: + if '<abc>' in entry: + clock_sync_found = True + break + self.assertTrue(clock_sync_found, 'BattOr Data:%s\n' % repr(results)) + + +if __name__ == '__main__': + logging.getLogger().setLevel(logging.DEBUG) + unittest.main(verbosity=2)
diff --git a/systrace/catapult/common/battor/battor/battor_wrapper_unittest.py b/systrace/catapult/common/battor/battor/battor_wrapper_unittest.py new file mode 100644 index 0000000..7e14c34 --- /dev/null +++ b/systrace/catapult/common/battor/battor/battor_wrapper_unittest.py
@@ -0,0 +1,387 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import dependency_manager +import logging +import mock +import subprocess +import unittest + +from battor import battor_error +from battor import battor_wrapper +from devil.utils import battor_device_mapping +from devil.utils import find_usb_devices + +import serial +from serial.tools import list_ports + + +class DependencyManagerMock(object): + def __init__(self, _): + self._fetch_return = 'path' + self._version_return = 'cbaa843' + + def FetchPath(self, _, *unused): + del unused + return self._fetch_return + + def FetchPathWithVersion(self, _, *unused): + del unused + return self._fetch_return, self._version_return + +class PopenMock(object): + def __init__(self, *unused): + pass + + def poll(self): + pass + + def kill(self): + pass + + +class IsBattOrConnectedTest(unittest.TestCase): + def setUp(self): + # Windows monkey patches. + self._serial_tools_return = [] + self._comports = serial.tools.list_ports.comports + serial.tools.list_ports.comports = lambda: self._serial_tools_return + + # Linux/Android monkey patches. + self._generate_serial_map_return = {} + self._generate_serial_map = battor_device_mapping.GenerateSerialMap + battor_device_mapping.GenerateSerialMap = ( + lambda: self._generate_serial_map_return) + + self._read_serial_map_file_return = {} + self._read_serial_map_file = battor_device_mapping.ReadSerialMapFile + battor_device_mapping.ReadSerialMapFile = ( + lambda f: self._read_serial_map_file_return) + + self._get_bus_number_to_device_tree_map = ( + find_usb_devices.GetBusNumberToDeviceTreeMap) + find_usb_devices.GetBusNumberToDeviceTreeMap = lambda fast=None: {} + + self._get_battor_list_return = [] + self._get_battor_list = battor_device_mapping.GetBattOrList + battor_device_mapping.GetBattOrList = lambda x: self._get_battor_list_return + + def tearDown(self): + serial.tools.list_ports.comports = self._comports + battor_device_mapping.GenerateSerialMap = self._generate_serial_map + battor_device_mapping.ReadSerialMapFile = self._read_serial_map_file + find_usb_devices.GetBusNumberToDeviceTreeMap = ( + self._get_bus_number_to_device_tree_map) + battor_device_mapping.GetBattOrList = self._get_battor_list + + def forceException(self): + raise NotImplementedError + + def testAndroidWithBattOr(self): + self._generate_serial_map_return = {'abc': '123'} + self.assertTrue(battor_wrapper.IsBattOrConnected('android', 'abc')) + + def testAndroidWithoutMatchingBattOr(self): + self._generate_serial_map_return = {'notabc': 'not123'} + self.assertFalse(battor_wrapper.IsBattOrConnected('android', 'abc')) + + def testAndroidNoDevicePassed(self): + with self.assertRaises(ValueError): + battor_wrapper.IsBattOrConnected('android') + + def testAndroidWithMapAndFile(self): + device_map = {'abc': '123'} + battor_device_mapping.ReadSerialMapFile = self.forceException + self.assertTrue( + battor_wrapper.IsBattOrConnected('android', android_device='abc', + android_device_map=device_map, + android_device_file='file')) + + def testAndroidWithMap(self): + self.assertTrue( + battor_wrapper.IsBattOrConnected('android', android_device='abc', + android_device_map={'abc', '123'})) + + def testAndroidWithFile(self): + self._read_serial_map_file_return = {'abc': '123'} + self.assertTrue( + battor_wrapper.IsBattOrConnected('android', android_device='abc', + android_device_file='file')) + + def testLinuxWithBattOr(self): + self._get_battor_list_return = ['battor'] + self.assertTrue(battor_wrapper.IsBattOrConnected('linux')) + + def testLinuxWithoutBattOr(self): + self._get_battor_list_return = [] + self.assertFalse(battor_wrapper.IsBattOrConnected('linux')) + + def testMacWithBattOr(self): + self._serial_tools_return = [('/dev/tty.usbserial-MAA', 'BattOr v3.3', '')] + self.assertTrue(battor_wrapper.IsBattOrConnected('mac')) + + def testMacWithoutBattOr(self): + self._serial_tools_return = [('/dev/tty.usbserial-MAA', 'not_one', '')] + self.assertFalse(battor_wrapper.IsBattOrConnected('mac')) + + def testWinWithBattOr(self): + self._serial_tools_return = [('COM4', 'USB Serial Port', '')] + self.assertTrue(battor_wrapper.IsBattOrConnected('win')) + + def testWinWithoutBattOr(self): + self._get_battor_list_return = [] + self.assertFalse(battor_wrapper.IsBattOrConnected('win')) + + +class BattOrWrapperTest(unittest.TestCase): + def setUp(self): + self._battor = None + self._is_battor = True + self._battor_list = ['battor1'] + self._should_pass = True + self._fake_map = {'battor1': 'device1'} + self._fake_return_code = None + self._fake_battor_return = 'Done.\n' + + self._get_battor_path_from_phone_serial = ( + battor_device_mapping.GetBattOrPathFromPhoneSerial) + self._get_bus_number_to_device_tree_map = ( + find_usb_devices.GetBusNumberToDeviceTreeMap) + self._dependency_manager = dependency_manager.DependencyManager + self._get_battor_list = battor_device_mapping.GetBattOrList + self._is_battor = battor_device_mapping.IsBattOr + self._generate_serial_map = battor_device_mapping.GenerateSerialMap + self._serial_tools = serial.tools.list_ports.comports + + battor_device_mapping.GetBattOrPathFromPhoneSerial = ( + lambda x, serial_map_file=None, serial_map=None: x + '_battor') + find_usb_devices.GetBusNumberToDeviceTreeMap = lambda fast=False: True + dependency_manager.DependencyManager = DependencyManagerMock + battor_device_mapping.GetBattOrList = lambda x: self._battor_list + battor_device_mapping.IsBattOr = lambda x, y: self._is_battor + battor_device_mapping.GenerateSerialMap = lambda: self._fake_map + serial.tools.list_ports.comports = lambda: [('COM4', 'USB Serial Port', '')] + + self._subprocess_check_output_code = 0 + def subprocess_check_output_mock(*unused): + if self._subprocess_check_output_code != 0: + raise subprocess.CalledProcessError(None, None) + return 0 + self._subprocess_check_output = subprocess.check_output + subprocess.check_output = subprocess_check_output_mock + + def tearDown(self): + battor_device_mapping.GetBattOrPathFromPhoneSerial = ( + self._get_battor_path_from_phone_serial) + find_usb_devices.GetBusNumberToDeviceTreeMap = ( + self._get_bus_number_to_device_tree_map) + dependency_manager.DependencyManager = self._dependency_manager + battor_device_mapping.GetBattOrList = self._get_battor_list + battor_device_mapping.IsBattOr = self._is_battor + battor_device_mapping.GenerateSerialMap = self._generate_serial_map + serial.tools.list_ports.comports = self._serial_tools + subprocess.check_output = self._subprocess_check_output + + def _DefaultBattOrReplacements(self): + battor_wrapper.DEFAULT_SHELL_CLOSE_TIMEOUT_S = .1 + self._battor._StartShellImpl = lambda *unused: PopenMock() + self._battor.GetShellReturnCode = lambda *unused: self._fake_return_code + self._battor._SendBattOrCommandImpl = lambda x: self._fake_battor_return + self._battor._StopTracingImpl = lambda *unused: (self._fake_battor_return, + None) + + def testBadPlatform(self): + with self.assertRaises(battor_error.BattOrError): + self._battor = battor_wrapper.BattOrWrapper('unknown') + + def testInitAndroidWithBattOr(self): + self._battor = battor_wrapper.BattOrWrapper('android', android_device='abc') + self.assertEquals(self._battor._battor_path, 'abc_battor') + + def testInitAndroidWithoutBattOr(self): + self._battor_list = [] + self._fake_map = {} + battor_device_mapping.GetBattOrPathFromPhoneSerial = ( + self._get_battor_path_from_phone_serial) + with self.assertRaises(battor_error.BattOrError): + self._battor = battor_wrapper.BattOrWrapper('android', + android_device='abc') + + def testInitBattOrPathIsBattOr(self): + battor_path = 'battor/path/here' + self._battor = battor_wrapper.BattOrWrapper( + 'android', android_device='abc', battor_path=battor_path) + self.assertEquals(self._battor._battor_path, battor_path) + + def testInitNonAndroidWithBattOr(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self.assertEquals(self._battor._battor_path, 'COM4') + + def testInitNonAndroidWithMultipleBattOr(self): + self._battor_list.append('battor2') + with self.assertRaises(battor_error.BattOrError): + self._battor = battor_wrapper.BattOrWrapper('linux') + + def testInitNonAndroidWithoutBattOr(self): + self._battor_list = [] + serial.tools.list_ports.comports = lambda: [('COM4', 'None', '')] + with self.assertRaises(battor_error.BattOrError): + self._battor = battor_wrapper.BattOrWrapper('win') + + def testStartShellPass(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self.assertIsNotNone(self._battor._battor_shell) + + def testStartShellDoubleStart(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + with self.assertRaises(AssertionError): + self._battor.StartShell() + + def testStartShellFail(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.GetShellReturnCode = lambda *unused: 1 + with self.assertRaises(AssertionError): + self._battor.StartShell() + + def testStartTracingPass(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.StartTracing() + self.assertTrue(self._battor._tracing) + + def testStartTracingDoubleStart(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.StartTracing() + with self.assertRaises(AssertionError): + self._battor.StartTracing() + + def testStartTracingCommandFails(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor._SendBattOrCommandImpl = lambda *unused: 'Fail.\n' + self._battor.StartShell() + with self.assertRaises(battor_error.BattOrError): + self._battor.StartTracing() + + def testStopTracingPass(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.StartTracing() + self._battor.GetShellReturnCode = lambda *unused: 0 + self._battor.StopTracing() + self.assertFalse(self._battor._tracing) + + def testStopTracingNotRunning(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + with self.assertRaises(AssertionError): + self._battor.StopTracing() + + def testFlashFirmwarePass(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self.assertTrue(self._battor.FlashFirmware('hex_path', 'config_path')) + + def testFlashFirmwareFail(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self._subprocess_check_output_code = 1 + with self.assertRaises(battor_wrapper.BattOrFlashError): + self._battor.FlashFirmware('hex_path', 'config_path') + + def testFlashFirmwareShellRunning(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self._battor.StartShell() + with self.assertRaises(AssertionError): + self._battor.FlashFirmware('hex_path', 'config_path') + + def testGetFirmwareGitHashNotRunning(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + with self.assertRaises(AssertionError): + self._battor.GetFirmwareGitHash() + + def testGetFirmwareGitHashPass(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.GetFirmwareGitHash = lambda: 'cbaa843' + self.assertTrue(isinstance(self._battor.GetFirmwareGitHash(), basestring)) + + def testStopShellPass(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._fake_return_code = 0 + self._battor.StopShell() + self.assertIsNone(self._battor._battor_shell) + + @mock.patch('time.sleep', mock.Mock) + def testStopShellTimeOutAndKill(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.StopShell() + self.assertIsNone(self._battor._battor_shell) + + def testStopShellNotStarted(self): + self._battor = battor_wrapper.BattOrWrapper('win') + self._DefaultBattOrReplacements() + with self.assertRaises(AssertionError): + self._battor.StopShell() + + @mock.patch('time.sleep', mock.Mock) + def testFlashBattOrSameGitHash(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.GetFirmwareGitHash = lambda: 'cbaa843' + dependency_manager.DependencyManager._version_return = 'cbaa843' + self.assertFalse(self._battor._FlashBattOr()) + + @mock.patch('time.sleep', mock.Mock) + def testFlashBattOrDifferentGitHash(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.GetFirmwareGitHash = lambda: 'bazz732' + dependency_manager.DependencyManager._version_return = 'cbaa843' + self.assertTrue(self._battor._FlashBattOr()) + + def testCollectTraceDataNoStartTime(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.StartTracing() + self._battor.GetShellReturnCode = lambda *unused: 0 + self._battor.StopTracing() + self._battor._start_tracing_time = None + with self.assertRaises(battor_error.BattOrError): + self._battor.CollectTraceData() + + def testCollectTraceDataNoStopTime(self): + self._battor = battor_wrapper.BattOrWrapper('linux') + self._DefaultBattOrReplacements() + self._battor.StartShell() + self._battor.StartTracing() + self._battor.GetShellReturnCode = lambda *unused: 0 + self._battor.StopTracing() + self._battor._stop_tracing_time = None + with self.assertRaises(battor_error.BattOrError): + self._battor.CollectTraceData() + + +if __name__ == '__main__': + logging.getLogger().setLevel(logging.DEBUG) + unittest.main(verbosity=2)
diff --git a/systrace/catapult/common/battor/bin/run_py_tests b/systrace/catapult/common/battor/bin/run_py_tests new file mode 100755 index 0000000..61103bd --- /dev/null +++ b/systrace/catapult/common/battor/bin/run_py_tests
@@ -0,0 +1,23 @@ +#!/usr/bin/env python +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os +import sys + +_CATAPULT_PATH = os.path.abspath(os.path.join( + os.path.dirname(__file__), '..', '..', '..')) +_BATTOR_PATH = os.path.abspath(os.path.join( + os.path.dirname(__file__), '..')) + +sys.path.append(_CATAPULT_PATH) +from catapult_build import run_with_typ + + +def main(): + return run_with_typ.Run(top_level_dir=_BATTOR_PATH) + + +if __name__ == '__main__': + sys.exit(main())
diff --git a/systrace/catapult/common/battor/bin/upload_battor_binaries.py b/systrace/catapult/common/battor/bin/upload_battor_binaries.py new file mode 100755 index 0000000..8901cfc --- /dev/null +++ b/systrace/catapult/common/battor/bin/upload_battor_binaries.py
@@ -0,0 +1,54 @@ +#!/usr/bin/env python +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import argparse +import os +import sys + +sys.path.append( + os.path.abspath(os.path.join(os.path.dirname(__file__), + '..', '..', '..', 'dependency_manager'))) +from dependency_manager import base_config # pylint: disable=import-error + + +_SUPPORTED_ARCHS = [ + 'linux2_x86_64', 'darwin_x86_64', 'win_AMD64', 'win32_AMD64', 'win32_x86', + 'default' +] +_DEFAULT_DEP = 'battor_agent_binary' +_DEFAULT_CONFIG = os.path.join(os.path.dirname(__file__), '..', 'battor', + 'battor_binary_dependencies.json') + + +def UploadBinary(arch, path, config, dep): + print 'Uploading binary:' + print ' arch: %s' % arch + print ' path: %s' % path + print ' config: %s' % config + print ' dep: %s' % dep + c = base_config.BaseConfig(config, writable=True) + c.AddCloudStorageDependencyUpdateJob( + dep, arch, path, version=None, execute_job=True) + print 'Upload complete.' + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--arch', '--architecture', required=True, + help='Architecture binary is built for.') + parser.add_argument('--path', required=True, help='Path to binary.') + parser.add_argument('--config', default=_DEFAULT_CONFIG, + help='Path to dependency manager config') + parser.add_argument('--dep', default=_DEFAULT_DEP, + help='Name of dependency to update.') + args = parser.parse_args() + if args.arch not in _SUPPORTED_ARCHS: + print 'Arch must be one of: %s' % _SUPPORTED_ARCHS + return 1 + UploadBinary(args.arch, args.path, args.config, args.dep) + return 0 + +if __name__ == '__main__': + sys.exit(main())
diff --git a/systrace/catapult/common/bin/run_tests b/systrace/catapult/common/bin/run_tests index 632cdbf..3021755 100755 --- a/systrace/catapult/common/bin/run_tests +++ b/systrace/catapult/common/bin/run_tests
@@ -6,23 +6,33 @@ import os import sys - _CATAPULT_PATH = os.path.abspath( os.path.join(os.path.dirname(__file__), '..', '..')) -_TESTS = [ - {'path': os.path.join( - _CATAPULT_PATH, 'common', 'eslint', 'bin', 'run_tests')}, - {'path': os.path.join( - _CATAPULT_PATH, 'common', 'py_trace_event', 'bin', 'run_tests')}, - {'path': os.path.join( - _CATAPULT_PATH, 'common', 'py_utils', 'bin', 'run_tests')}, - {'path': os.path.join( - _CATAPULT_PATH, 'common', 'py_vulcanize', 'bin', 'run_py_tests')}, -] + +_PY_UTILS_PATH = os.path.abspath( + os.path.join(_CATAPULT_PATH, 'common', 'py_utils')) + + +def _RunTestsOrDie(top_level_dir): + exit_code = run_with_typ.Run(top_level_dir, path=[_PY_UTILS_PATH]) + if exit_code: + sys.exit(exit_code) + + +def _AddToPathIfNeeded(path): + if path not in sys.path: + sys.path.insert(0, path) if __name__ == '__main__': - sys.path.append(_CATAPULT_PATH) - from catapult_build import test_runner - sys.exit(test_runner.Main('project', _TESTS, sys.argv)) + _AddToPathIfNeeded(_CATAPULT_PATH) + from hooks import install + if '--no-install-hooks' in sys.argv: + sys.argv.remove('--no-install-hooks') + else: + install.InstallHooks() + + from catapult_build import run_with_typ + _RunTestsOrDie(_PY_UTILS_PATH) + sys.exit(0)
diff --git a/systrace/catapult/common/bin/update_chrome_reference_binaries b/systrace/catapult/common/bin/update_chrome_reference_binaries index e148c74..641fdc4 100755 --- a/systrace/catapult/common/bin/update_chrome_reference_binaries +++ b/systrace/catapult/common/bin/update_chrome_reference_binaries
@@ -18,7 +18,6 @@ import shutil import subprocess import sys -import tempfile import urllib2 import zipfile @@ -43,12 +42,11 @@ # Add one to enable updating it. (Must also update _PLATFORM_MAP.) _PLATFORMS_TO_UPDATE = ['mac_x86_64', 'win_x86', 'win_AMD64', 'linux_x86_64', 'android_k_armeabi-v7a', 'android_l_arm64-v8a', - 'android_l_armeabi-v7a', 'android_n_armeabi-v7a', - 'android_n_arm64-v8a'] + 'android_l_armeabi-v7a'] -# Remove a channel name from this list to disable updating it. +# Remove a channal name from this list to disable updating it. # Add one to enable updating it. -_CHANNELS_TO_UPDATE = ['stable', 'canary', 'dev'] +_CHANNELS_TO_UPDATE = ['stable'] # 'canary', 'dev' # Omaha is Chrome's autoupdate server. It reports the current versions used @@ -58,49 +56,40 @@ # All of the information we need to update each platform. -# omaha: name omaha uses for the platforms. +# omaha: name omaha uses for the plaftorms. # zip_name: name of the zip file to be retrieved from cloud storage. # gs_build: name of the Chrome build platform used in cloud storage. # destination: Name of the folder to download the reference build to. UpdateInfo = collections.namedtuple('UpdateInfo', 'omaha, gs_folder, gs_build, zip_name') -_PLATFORM_MAP = {'mac_x86_64': UpdateInfo(omaha='mac', +_PLATFORM_MAP = { 'mac_x86_64': UpdateInfo(omaha='mac', + gs_folder='desktop-*', + gs_build='mac64', + zip_name='chrome-mac.zip'), + 'win_x86': UpdateInfo(omaha='win', + gs_folder='desktop-*', + gs_build='win', + zip_name='chrome-win.zip'), + 'win_AMD64': UpdateInfo(omaha='win', gs_folder='desktop-*', - gs_build='mac64', - zip_name='chrome-mac.zip'), - 'win_x86': UpdateInfo(omaha='win', - gs_folder='desktop-*', - gs_build='win-clang', - zip_name='chrome-win-clang.zip'), - 'win_AMD64': UpdateInfo(omaha='win', - gs_folder='desktop-*', - gs_build='win64-clang', - zip_name='chrome-win64-clang.zip'), - 'linux_x86_64': UpdateInfo(omaha='linux', - gs_folder='desktop-*', - gs_build='linux64', - zip_name='chrome-linux64.zip'), - 'android_k_armeabi-v7a': UpdateInfo(omaha='android', - gs_folder='android-*', - gs_build='arm', - zip_name='Chrome.apk'), - 'android_l_arm64-v8a': UpdateInfo(omaha='android', - gs_folder='android-*', - gs_build='arm_64', - zip_name='ChromeModern.apk'), - 'android_l_armeabi-v7a': UpdateInfo(omaha='android', - gs_folder='android-*', - gs_build='arm', - zip_name='Chrome.apk'), - 'android_n_armeabi-v7a': UpdateInfo(omaha='android', - gs_folder='android-*', - gs_build='arm', - zip_name='Monochrome.apk'), - 'android_n_arm64-v8a': UpdateInfo(omaha='android', - gs_folder='android-*', - gs_build='arm_64', - zip_name='Monochrome.apk'), - + gs_build='win64', + zip_name='chrome-win64.zip'), + 'linux_x86_64': UpdateInfo(omaha='linux', + gs_folder='desktop-*', + gs_build='linux64', + zip_name='chrome-linux64.zip'), + 'android_k_armeabi-v7a': UpdateInfo(omaha='android', + gs_folder='android-*', + gs_build='arm', + zip_name='Chrome.apk'), + 'android_l_arm64-v8a': UpdateInfo(omaha='android', + gs_folder='android-*', + gs_build='arm_64', + zip_name='ChromeModern.apk'), + 'android_l_armeabi-v7a': UpdateInfo(omaha='android', + gs_folder='android-*', + gs_build='arm', + zip_name='Chrome.apk'), } @@ -150,10 +139,8 @@ remote_path = '%s/%s/%s/%s' % ( platform_info.gs_folder, version, platform_info.gs_build, filename) if not cloud_storage.Exists(CHROME_GS_BUCKET, remote_path): - cloud_storage_path = 'gs://%s/%s' % (CHROME_GS_BUCKET, remote_path) raise BuildNotFoundError( - 'Failed to find %s build for version %s at path %s.' % ( - platform, version, cloud_storage_path)) + 'Failed to find %s build for version %s at path %s.' % (platform, version, remote_path)) reference_builds_folder = os.path.join( os.path.dirname(os.path.abspath(__file__)), 'chrome_telemetry_build', 'reference_builds', channel) @@ -161,49 +148,11 @@ os.makedirs(reference_builds_folder) local_dest_path = os.path.join(reference_builds_folder, filename) cloud_storage.Get(CHROME_GS_BUCKET, remote_path, local_dest_path) - _ModifyBuildIfNeeded(local_dest_path, platform) config.AddCloudStorageDependencyUpdateJob( 'chrome_%s' % channel, platform, local_dest_path, version=version, execute_job=False) -def _ModifyBuildIfNeeded(location, platform): - """Hook to modify the build before saving it for Telemetry to use. - - This can be used to remove various utilities that cause noise in a - test environment. Right now, it is just used to remove Keystone, - which is a tool used to autoupdate Chrome. - """ - if platform == 'mac_x86_64': - _RemoveKeystoneFromBuild(location) - return - - if 'mac' in platform: - raise NotImplementedError( - 'Platform <%s> sounds like it is an OSX version. If so, we may need to ' - 'remove Keystone from it per crbug.com/932615. Please edit this script' - ' and teach it what needs to be done :).') - - -def _RemoveKeystoneFromBuild(location): - """Removes the Keystone autoupdate binary from the chrome mac zipfile.""" - logging.info('Removing keystone from mac build at %s' % location) - temp_folder = tempfile.mkdtemp(prefix='RemoveKeystoneFromBuild') - try: - subprocess.check_call(['unzip', '-q', location, '-d', temp_folder]) - keystone_folder = os.path.join( - temp_folder, 'chrome-mac', 'Google Chrome.app', 'Contents', - 'Frameworks', 'Google Chrome Framework.framework', 'Frameworks', - 'KeystoneRegistration.framework') - shutil.rmtree(keystone_folder) - os.remove(location) - subprocess.check_call(['zip', '--quiet', '--recurse-paths', '--symlinks', - location, 'chrome-mac'], - cwd=temp_folder) - finally: - shutil.rmtree(temp_folder) - - def UpdateBuilds(): config = base_config.BaseConfig(_CHROME_BINARIES_CONFIG, writable=True) for channel in _CHANNELS_TO_UPDATE: @@ -216,6 +165,7 @@ if current_version and current_version == channel_version: continue _QueuePlatformUpdate(platform, channel_version, config, channel) + # TODO: move execute update jobs here, and add committing/uploading the cl. print 'Updating chrome builds with downloaded binaries' config.ExecuteUpdateJobs(force=True) @@ -223,7 +173,10 @@ def main(): logging.getLogger().setLevel(logging.DEBUG) + #TODO(aiolos): alert sheriffs via email when an error is seen. + #This should be added when alerts are added when updating the build. UpdateBuilds() + # TODO(aiolos): Add --commit flag. crbug.com/547229 if __name__ == '__main__': main()
diff --git a/systrace/catapult/common/lab/commits.py b/systrace/catapult/common/lab/commits.py index 6d47b91..ce02ee3 100755 --- a/systrace/catapult/common/lab/commits.py +++ b/systrace/catapult/common/lab/commits.py
@@ -15,7 +15,7 @@ _BASE_URL = 'https://chromium.googlesource.com' # Can be up to 10,000. -_REVISION_COUNT = 10000 +_REVISION_COUNT = 1000 _REPOSITORIES = [ 'chromium/src', @@ -67,37 +67,33 @@ commit_time_string = revision['committer']['time'] commit_time = datetime.datetime.strptime( commit_time_string, '%a %b %d %H:%M:%S %Y') - commit_times.append(commit_time - datetime.timedelta(hours=7)) + commit_times.append(commit_time) return commit_times -def IsWeekday(time): - return time.weekday() >= 0 and time.weekday() < 5 - - def main(): for repository in _REPOSITORIES: commit_times = CommitTimes(repository, _REVISION_COUNT) commit_durations = [] for time1, time2 in Pairwise(commit_times): - #if not (IsWeekday(time1) and IsWeekday(time2)): - # continue - commit_durations.append((time1 - time2).total_seconds() / 60.) + commit_durations.append((time1 - time2).total_seconds()) commit_durations.sort() print 'REPOSITORY:', repository - print 'Start Date:', min(commit_times), 'PDT' - print ' End Date:', max(commit_times), 'PDT' + print 'Start Date:', min(commit_times) + print ' End Date:', max(commit_times) print ' Duration:', max(commit_times) - min(commit_times) print ' n:', len(commit_times) - for p in (0.25, 0.50, 0.90): + for p in (0.00, 0.05, 0.25, 0.50, 0.75, 0.95, 1.00): percentile = Percentile(commit_durations, p) - print '%3d%% commit duration:' % (p * 100), '%6.1fm' % percentile + print '%3d%% commit duration:' % (p * 100), '%6ds' % percentile mean = math.fsum(commit_durations) / len(commit_durations) - print 'Mean commit duration:', '%6.1fm' % mean + print ' Min commit duration:', '%6ds' % min(commit_durations) + print 'Mean commit duration:', '%6ds' % mean + print ' Max commit duration:', '%6ds' % max(commit_durations) print
diff --git a/systrace/catapult/common/node_runner/node_runner/README.md b/systrace/catapult/common/node_runner/node_runner/README.md deleted file mode 100644 index 47c85ba..0000000 --- a/systrace/catapult/common/node_runner/node_runner/README.md +++ /dev/null
@@ -1,11 +0,0 @@ -Update binaries: - -1. Download archives pre-compiled binaries. -2. Unzip archives. -3. Re-zip just the binary: - `zip new.zip node-v10.14.1-linux-x64/bin/node` -4. Use the update script: - `./dependency_manager/bin/update --config - common/node_runner/node_runner/node_binaries.json --dependency node --path - new.zip --platform linux_x86_64` -5. Mail out the automated change to `node_binaries.json` for review and CQ.
diff --git a/systrace/catapult/common/node_runner/node_runner/minify b/systrace/catapult/common/node_runner/node_runner/minify deleted file mode 100755 index a5a24cf..0000000 --- a/systrace/catapult/common/node_runner/node_runner/minify +++ /dev/null
@@ -1,53 +0,0 @@ -#!/usr/bin/env node -'use strict'; -/* -Copyright 2018 The Chromium Authors. All rights reserved. -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. - -This script wraps common HTML transformations including stripping whitespace and -comments from HTML, CSS, and Javascript. -*/ -const dom5 = require('dom5'); -const escodegen = require('escodegen'); -const espree = require('espree'); -const fs = require('fs'); -const nopt = require('nopt'); - -const args = nopt(); -const filename = args.argv.remain[0]; - -let html = fs.readFileSync(filename).toString('utf8'); -let parsedHtml = dom5.parse(html); -// First, collapse text nodes around comments (by removing comment nodes, -// re-serializing, and re-parsing) in order to prevent multiple extraneous -// newlines. -for (const node of dom5.nodeWalkAll(parsedHtml, () => true)) { - if (dom5.isCommentNode(node)) { - dom5.remove(node); - } -} -html = dom5.serialize(parsedHtml); -parsedHtml = dom5.parse(html); -// Some of these transformations are based on polyclean: -// https://github.com/googlearchive/polyclean -for (const node of dom5.nodeWalkAll(parsedHtml, () => true)) { - if (dom5.isTextNode(node)) { - dom5.setTextContent(node, dom5.getTextContent(node) - .replace(/ *\n+ */g, '\n') - .replace(/\n+/g, '\n')); - } else if (dom5.predicates.hasTagName('script')(node) && - !dom5.predicates.hasAttr('src')(node)) { - let text = dom5.getTextContent(node); - const ast = espree.parse(text, {ecmaVersion: 2018}); - text = escodegen.generate(ast, {format: {indent: {style: ''}}}); - dom5.setTextContent(node, text); - } else if (dom5.predicates.hasTagName('style')(node)) { - dom5.setTextContent(node, dom5.getTextContent(node) - .replace(/[\r\n]/g, '') - .replace(/ {2,}/g, ' ') - .replace(/(^|[;,\:\{\}]) /g, '$1') - .replace(/ ($|[;,\{\}])/g, '$1')); - } -} -fs.writeFileSync(filename, dom5.serialize(parsedHtml));
diff --git a/systrace/catapult/common/node_runner/node_runner/minifyjs b/systrace/catapult/common/node_runner/node_runner/minifyjs deleted file mode 100755 index e594169..0000000 --- a/systrace/catapult/common/node_runner/node_runner/minifyjs +++ /dev/null
@@ -1,21 +0,0 @@ -#!/usr/bin/env node -'use strict'; -/* -Copyright 2019 The Chromium Authors. All rights reserved. -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. - -This script strips whitespace and comments from Javascript. -*/ -const escodegen = require('escodegen'); -const espree = require('espree'); -const fs = require('fs'); -const nopt = require('nopt'); - -const args = nopt(); -const filename = args.argv.remain[0]; - -let text = fs.readFileSync(filename).toString('utf8'); -const ast = espree.parse(text, {ecmaVersion: 2018}); -text = escodegen.generate(ast, {format: {indent: {style: ''}}}); -fs.writeFileSync(filename, text);
diff --git a/systrace/catapult/common/node_runner/node_runner/node_binaries.json b/systrace/catapult/common/node_runner/node_runner/node_binaries.json index 3a17db0..4245249 100644 --- a/systrace/catapult/common/node_runner/node_runner/node_binaries.json +++ b/systrace/catapult/common/node_runner/node_runner/node_binaries.json
@@ -6,9 +6,9 @@ "cloud_storage_bucket": "chromium-telemetry", "file_info": { "linux_x86_64": { - "cloud_storage_hash": "27ad092b0ce59d2da32090a00f717f0c31e65240", + "cloud_storage_hash": "5750e968975e7f5ab8cb694f5e92a34a890e129d", "download_path": "bin/node/node-linux64.zip", - "path_within_archive": "node-v10.14.1-linux-x64/bin/node", + "path_within_archive": "node-v6.7.0-linux-x64/bin/node", "version_in_cs": "6.7.0" }, "mac_x86_64": {
diff --git a/systrace/catapult/common/node_runner/node_runner/package-lock.json b/systrace/catapult/common/node_runner/node_runner/package-lock.json deleted file mode 100644 index 683cae9..0000000 --- a/systrace/catapult/common/node_runner/node_runner/package-lock.json +++ /dev/null
@@ -1,7189 +0,0 @@ -{ - "name": "catapult_base", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@chopsui/batch-iterator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@chopsui/batch-iterator/-/batch-iterator-0.1.0.tgz", - "integrity": "sha512-rKXkaIe3H6sQ5bQ798Qdim3v5Lb1WD881daiiMgTsnWvHmFftiytsC0yPespE20vxlllDea2CZpzfOxTY6/Wsg==" - }, - "@chopsui/chops-button": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-button/-/chops-button-0.1.11.tgz", - "integrity": "sha512-Mf2t8W629ABg+CKmI6friQGAE7C9bed/Q2GF4Bb8QLKKHcYM73XtWDNcivr4h7ej6YeuGf1KzGMWsApk3m/zww==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-checkbox": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-checkbox/-/chops-checkbox-0.1.11.tgz", - "integrity": "sha512-nJOXWP04kIw9eZio1yye0wJEwWR5ZWZUBk2XP+//Fuu+RHMafZdkGfG4DNdrHh9VYprdRcZNM4R+LS5Zh9l6JQ==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-header": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@chopsui/chops-header/-/chops-header-0.1.5.tgz", - "integrity": "sha512-AVbOU1IjOsKxO7j3B0TWXLSzWcaznmxAJFCh9Hq0GZUeBF/d+UBzlwoVZ6fXwzZXZ4A54QVbFbeD+bNQJ55piQ==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-input": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-input/-/chops-input-0.1.11.tgz", - "integrity": "sha512-B4dE2IoyilBpQAt1ERH3Q4PmpgRNogo2xlFNhag9FedBKXZmYa+o2ygl25IuAMaUa30mWBz1kOKYN8Lsovxv+w==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-loading": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-loading/-/chops-loading-0.1.11.tgz", - "integrity": "sha512-IkLWkiQXsJHd76MPN4pfoeAcX+4Ap9g6WSh1j7oFMJd2rzHQZpPfkLlMcAI99nUymmZrLbRjZ3qO48FbViK+kg==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-radio": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-radio/-/chops-radio-0.1.11.tgz", - "integrity": "sha512-ZFtS+CtyGg34ezzTod20zLOYPgsHSmpyZ4zmkDdY1fatBdskG3ojSp4u0p/fd9kTKSykG94h0Gtj02GijCCRRg==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-radio-group": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-radio-group/-/chops-radio-group-0.1.11.tgz", - "integrity": "sha512-Fq5/RaTI1kpdxOenFKp9P/0fDQXzQYhU7+v1/W+7NgB6SlOtJ6EmsVsotEI/woPuRcOdt7dcrzATj4IQwapKxA==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-signin": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@chopsui/chops-signin/-/chops-signin-0.1.5.tgz", - "integrity": "sha512-4dLoxnc+W6CmErR8iUfFh01da8AUndnbTSjCRnklYMCMhq3oCCgHKF709ISzEjuChsbwKLe6Y0EjEScLeMiVeg==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-switch": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-switch/-/chops-switch-0.1.11.tgz", - "integrity": "sha512-ie+7x3xoZA8ADnr6+2HJox6xycCEvZb1Qhhu3lWuXi7TINFFTry0C7vU9W8EoBu31JVM+g47Y+9+HI6jQfaUbA==", - "requires": { - "@chopsui/chops-checkbox": "^0.1.6", - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-tab": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-tab/-/chops-tab-0.1.11.tgz", - "integrity": "sha512-9YUcBNUSaW7Cyk5MNQSZpR4fDhwJul8na7/MwEpgdRVdndbVl7a4juTI4oTftEeoqjirPn/ZEo7+VwlJp0kR7A==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-tab-bar": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-tab-bar/-/chops-tab-bar-0.1.11.tgz", - "integrity": "sha512-BeClVVCpYN/h7nKGaAIT9hJS3tLhzam4coIK0t/egImJNPGHj3+Mu07MzjUYZb2dA/rcKjpAdA9cIQFfEzXthA==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/chops-textarea": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@chopsui/chops-textarea/-/chops-textarea-0.1.11.tgz", - "integrity": "sha512-lJDC6OeTpKQV5JYED6Ev5Rkm3oMw/UcOWXyLh6n1/BnlCweg8n1CGqqUQvxtxTG7hc4fhIkiok84zcSnwBcwIg==", - "requires": { - "lit-element": "^2.0.0" - } - }, - "@chopsui/result-channel": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@chopsui/result-channel/-/result-channel-0.1.0.tgz", - "integrity": "sha512-9gocIAIwaX74Yj+wnkzlebfgTsvnZed8h+Yc71KDGO/A9rmgMNvl1kC1DoXgMMCUvELM0LybGHfZvzfkM8HKlw==" - }, - "@chopsui/tsmon-client": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@chopsui/tsmon-client/-/tsmon-client-0.0.1.tgz", - "integrity": "sha1-QoowBjL2RNLWDxU9WBj2fWTugF0=" - }, - "@polymer/app-route": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.2.tgz", - "integrity": "sha1-dJCW+2EPsV0nx7aERkBvMHhs+T0=", - "requires": { - "@polymer/iron-location": "^3.0.0-pre.26", - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-collapse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-collapse/-/iron-collapse-3.0.1.tgz", - "integrity": "sha1-ZBfIT1QF7ZCRh3ZdkkLjuHukYm8=", - "requires": { - "@polymer/iron-resizable-behavior": "^3.0.0-pre.26", - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-flex-layout": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz", - "integrity": "sha1-NvnhqOt5LSebK8ddNiYochrTfww=", - "requires": { - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-icon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz", - "integrity": "sha1-kyEcOdiCX+SWWmhBlWYDbB3ykes=", - "requires": { - "@polymer/iron-flex-layout": "^3.0.0-pre.26", - "@polymer/iron-meta": "^3.0.0-pre.26", - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-iconset-svg": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz", - "integrity": "sha1-Vo1ufbwSApna5jvjYArroNMN2+o=", - "requires": { - "@polymer/iron-meta": "^3.0.0-pre.26", - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-location": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-location/-/iron-location-3.0.1.tgz", - "integrity": "sha1-Q6WfztJI6nHbWDMRb83voYa3lSc=", - "requires": { - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-meta": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz", - "integrity": "sha1-fxQGKNEnsKKE+ILxuzI6JhvBJfU=", - "requires": { - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/iron-resizable-behavior": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz", - "integrity": "sha1-4oQ0jtfBx+Jj9wOSl1MvqVQCXqI=", - "requires": { - "@polymer/polymer": "^3.0.0" - } - }, - "@polymer/polymer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.2.0.tgz", - "integrity": "sha1-tB/d7E7KxjsSk2uTcmZ40jrdev0=", - "requires": { - "@webcomponents/shadycss": "^1.8.0" - } - }, - "@sinonjs/commons": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", - "integrity": "sha1-ez7C2Wr0gdegMhJS57HJRyTsWng=", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/formatio": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", - "integrity": "sha1-UjEPL5vLxnvawYyUrUkBuV/eJn4=", - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" - } - }, - "@sinonjs/samsam": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz", - "integrity": "sha1-6IxT+9nZGtnw8rAUDBbHwQf+DQc=", - "requires": { - "@sinonjs/commons": "^1.0.2", - "array-from": "^2.1.1", - "lodash": "^4.17.11" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - } - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=" - }, - "@types/clone": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", - "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=" - }, - "@types/node": { - "version": "4.2.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", - "integrity": "sha1-kkHwDWTrkQhPaDZ3Ru8Q1fsvL8Q=" - }, - "@types/parse5": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-0.0.31.tgz", - "integrity": "sha1-6Cekk6RDsVbhtYKi5MO9wAQPLuc=", - "requires": { - "@types/node": "6.0.*" - }, - "dependencies": { - "@types/node": { - "version": "6.0.116", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.116.tgz", - "integrity": "sha1-L5zWK07MSSfjlC4mVcGC7s9bRfE=" - } - } - }, - "@webassemblyjs/ast": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.10.tgz", - "integrity": "sha1-DPxh1hKGJAty/FIst1VhNpnupAo=", - "requires": { - "@webassemblyjs/helper-module-context": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/wast-parser": "1.7.10" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz", - "integrity": "sha1-7mPXKcYxGoWGPjaaRz+Zg/mE5Nk=" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz", - "integrity": "sha1-v8s7vll3U1dHV5CirXsonwmy8Zg=" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz", - "integrity": "sha1-CoxiTGetCyFNLgA4WZIaGYjLFRs=" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz", - "integrity": "sha1-CrfiL60CQaFzF4xzl2/A7fUIMs4=", - "requires": { - "@webassemblyjs/wast-printer": "1.7.10" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz", - "integrity": "sha1-CRXncT+7tzViCp0+T6PXlR+XrGQ=" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz", - "integrity": "sha1-m+uD9ydA9ayAdTE7XKxeeWUQ91U=" - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz", - "integrity": "sha1-eXsec0u8/eqDmWac3FgwjvHH/8A=" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz", - "integrity": "sha1-wOo3A8YV17w+NQfDt5kch2ey8g4=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-buffer": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/wasm-gen": "1.7.10" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz", - "integrity": "sha1-YsFyi37w9m74Ih4pZqCv1120MN8=", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.10.tgz", - "integrity": "sha1-Fn4LtLBtdwFYV3KnP7qfTfhUOfY=", - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.10.tgz", - "integrity": "sha1-tnKPW29QNkq8FVvgKflnDmaFYFo=" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz", - "integrity": "sha1-g/4xQPWlj1owuRRwK+nw5Zo5kJI=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-buffer": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/helper-wasm-section": "1.7.10", - "@webassemblyjs/wasm-gen": "1.7.10", - "@webassemblyjs/wasm-opt": "1.7.10", - "@webassemblyjs/wasm-parser": "1.7.10", - "@webassemblyjs/wast-printer": "1.7.10" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz", - "integrity": "sha1-TeADgGrinJerNwd4JGm1MplXAXQ=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/ieee754": "1.7.10", - "@webassemblyjs/leb128": "1.7.10", - "@webassemblyjs/utf8": "1.7.10" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz", - "integrity": "sha1-0VHjFhGTSlVsgnif3uxBqBSZPCo=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-buffer": "1.7.10", - "@webassemblyjs/wasm-gen": "1.7.10", - "@webassemblyjs/wasm-parser": "1.7.10" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz", - "integrity": "sha1-A2e+e/jwnj5qvJX45IO5IGSH7GU=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-api-error": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/ieee754": "1.7.10", - "@webassemblyjs/leb128": "1.7.10", - "@webassemblyjs/utf8": "1.7.10" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz", - "integrity": "sha1-BY9Zi1L3MLI/yHTUd1tihrYkcmQ=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/floating-point-hex-parser": "1.7.10", - "@webassemblyjs/helper-api-error": "1.7.10", - "@webassemblyjs/helper-code-frame": "1.7.10", - "@webassemblyjs/helper-fsm": "1.7.10", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz", - "integrity": "sha1-2BeQnSRQrpbGa3YHYk2YozuEIjs=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/wast-parser": "1.7.10", - "@xtuc/long": "4.2.1" - } - }, - "@webcomponents/shadycss": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.9.1.tgz", - "integrity": "sha1-12n7rfpQTxG4TK7vJnAfiQcOxJo=" - }, - "@webpack-contrib/config-loader": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@webpack-contrib/config-loader/-/config-loader-1.2.1.tgz", - "integrity": "sha1-Wz3UdOIHQ3k50pTSAMaLewAAjgQ=", - "requires": { - "@webpack-contrib/schema-utils": "^1.0.0-beta.0", - "chalk": "^2.1.0", - "cosmiconfig": "^5.0.2", - "is-plain-obj": "^1.1.0", - "loud-rejection": "^1.6.0", - "merge-options": "^1.0.1", - "minimist": "^1.2.0", - "resolve": "^1.6.0", - "webpack-log": "^1.1.2" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "@webpack-contrib/schema-utils": { - "version": "1.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", - "integrity": "sha1-v5Y4yUZNF3tIIJ6EIJ4jvuLrT2U=", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chalk": "^2.3.2", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "webpack-log": "^1.1.2" - }, - "dependencies": { - "ajv": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", - "integrity": "sha1-JH1SdBENtlNwa1UPzCt5fKKM/Fk=", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - } - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=" - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha1-XIXWYvdvodNFdXZsXc1mFavNMNg=" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha1-8JWCkpdwanyXdpWMCvyJMKm52dg=" - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", - "requires": { - "acorn": "^5.0.0" - } - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - } - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "optional": true - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=" - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha1-9zIHu4EgfXX9bIPxJa8m7qN4yjA=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha1-O7xCdd1YTMGxCAm4nU6LY6aednU=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", - "requires": { - "lodash": "^4.17.11" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - } - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=" - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=" - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha1-wteA9T1Fu6gxeokC1M7q86Y4WxQ=" - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha1-1oDu7yX4zZGtUz9bAe7UjmTK9oM=" - }, - "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha1-G+CQjgVKdRdUVJwnBInBUF1KsVo=" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - } - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "^0.2.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha1-AylVJ9WL081Kp1Nj81sujZe+L0I=" - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=" - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha1-GMSasWoDe26wFSzIPjRxM4IVtm4=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha1-NW/04rDo5D4yLRijckYLvPOszSY=", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=" - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha1-Rakb0sIMlBHwljtarrmhuV4JzEg=", - "requires": { - "tslib": "^1.9.0" - } - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=" - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha1-SYgbj7pn3xKpa98/VsCqueeRMUc=", - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=" - }, - "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha1-OeAF1Uav4B4B+cTKj6UPaGoBIF0=" - }, - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha1-xvJd767vJt8S3TNBSwAf6BpUP48=", - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha1-+XJgj/DOrWi4QaFqky0LGDeRgU4=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", - "integrity": "sha1-3KbPaAoL0DWJr/aEcAhYyBq+6zk=", - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=" - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "^0.10.9" - } - }, - "date-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz", - "integrity": "sha1-fPexcvHsVk8AA7OeowLFSY+5jI8=" - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha1-ZW17vICUxMeI6lPFhAkIycfQY8c=", - "requires": { - "xregexp": "4.0.0" - } - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" - } - } - }, - "dom5": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/dom5/-/dom5-1.3.6.tgz", - "integrity": "sha1-pwiKn8XzsI3J9u2kx6uuskGUXg0=", - "requires": { - "@types/clone": "^0.1.29", - "@types/node": "^4.0.30", - "@types/parse5": "^0.0.31", - "clone": "^1.0.2", - "parse5": "^1.4.1" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=" - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", - "requires": { - "is-obj": "^1.0.0" - } - }, - "dot-prop-immutable": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/dot-prop-immutable/-/dot-prop-immutable-1.5.0.tgz", - "integrity": "sha512-YcnAEqxtJSect/W3taJeMkKhDrL7NzzvgKlJ515m5aGxJBJpzetXf0wZbGapdrBNwAItWvb4sOn+jX0RBYYM1g==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha1-saeinEq/1jlYXvrszoDWZrHjQSU=", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha1-wtC3d2kRuGcixjLDwGxg8vgZk5o=", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha1-tgKBw1SEpw7gNR6g6/+D7IyVIqI=", - "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" - }, - "dependencies": { - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha1-b1TAR13khxWKGnx30QF4cItq3TY=", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha1-dXq5cPvy37Mse3SwMyFtVznveaY=", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha1-Qcfgv9/nSsH/4eV61qXGyfN0Kn8=", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha1-nbvdJ8aFbwABQhyhh4LXhr+KYWU=", - "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha1-79mfZ8Wn7Hibqj2qf3mHA4j39XI=", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", - "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==" - } - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha1-snqTiUgdW/1b7Hb3ux6z+PRVZYk=", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-config-google": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.6.0.tgz", - "integrity": "sha1-xULsGPsyR5g6wWu6MWYtAWJbdj8=", - "requires": { - "eslint-config-xo": "^0.13.0" - } - }, - "eslint-config-xo": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.13.0.tgz", - "integrity": "sha1-+RZ2VDK6Z9L8enF3uLz+8/brBWQ=" - }, - "eslint-plugin-html": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-4.0.5.tgz", - "integrity": "sha1-6Ox+FkhRJEYPO/8xIBb+sKVNllk=", - "requires": { - "htmlparser2": "^3.8.2" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=" - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha1-LT1I+cNGaY/Og6hdfWZOmFNd9uc=" - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "flatted": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", - "integrity": "sha1-VRIrZTbqSWtLRIk+4mCBQdENmRY=" - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha1-xdWG7zivYJdlC0m8QbVfq7GfNb0=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha1-SJ68GY3A5/ZBZ70jsDxMGbV4THY=", - "requires": { - "debug": "^3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "requires": { - "null-check": "^1.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha1-pYP6pDBVsayncZFL9oJY4vwSVnM=" - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=" - }, - "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha1-trN8HO0DBrIh4JT8eso+wjsTG2c=", - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "optional": true - }, - "uglify-js": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.9.tgz", - "integrity": "sha512-WpT0RqsDtAWPNJK955DEnb6xjymR8Fn0OlK4TT4pS0ASYsVPqr5ELhgwOwLCP5J5vHeJ4xmMmz3DEgdqC10JeQ==", - "optional": true, - "requires": { - "commander": "~2.20.0", - "source-map": "~0.6.1" - } - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha1-d3asYn8+p3JQz8My2rfd9eT10R0=", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha1-44q0uF37HgxA/pJlwOm1SFTCOBI=", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha1-etOElGWPhGBeL220Q230EPTlvpo=", - "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - } - }, - "hydrolysis": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/hydrolysis/-/hydrolysis-1.25.0.tgz", - "integrity": "sha1-pPsUo3oeA7DbUtiqpXxoInKhTYQ=", - "requires": { - "acorn": "^3.2.0", - "babel-polyfill": "^6.2.0", - "doctrine": "^0.7.0", - "dom5": "1.1.0", - "escodegen": "^1.7.0", - "espree": "^3.1.3", - "estraverse": "^3.1.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - }, - "doctrine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", - "requires": { - "esutils": "^1.1.6", - "isarray": "0.0.1" - } - }, - "dom5": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/dom5/-/dom5-1.1.0.tgz", - "integrity": "sha1-Ogx3AMCDq0xNJpOKeLDwxtzDd5Q=", - "requires": { - "parse5": "^1.4.1" - } - }, - "estraverse": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.tgz", - "integrity": "sha1-FeKKRGuLgrxwDMyLlseK9NoNbLo=" - }, - "esutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha1-KXhx9jvlB63Pv8pxXQzQ7thOmmM=", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha1-UL8k5bnIu5ivSWTJQc2wkY2ntgs=" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=" - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "irregular-plurals": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz", - "integrity": "sha1-OdQPBbAPZW0Lf6RxIw3TtxSvKHI=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=" - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", - "requires": { - "ci-info": "^1.5.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=" - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=", - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", - "requires": { - "buffer-alloc": "^1.2.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=" - }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-instrumenter-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", - "integrity": "sha1-mVe9WSUrNz+uXFK3tRiOb94qCUk=", - "requires": { - "convert-source-map": "^1.5.0", - "istanbul-lib-instrument": "^1.7.3", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0" - }, - "dependencies": { - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "^5.0.0" - } - } - } - }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=" - }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha1-H1XtEKw8R/K93dUweTUSZ1TQqco=", - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" - } - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "just-extend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", - "integrity": "sha1-8/R/ffyg+YnFVBCn68iFSwcQivw=" - }, - "karma": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", - "integrity": "sha1-0HOHyXQ6V1tA+vc+ij61Qhwhk+E=", - "requires": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", - "braces": "^2.3.2", - "chokidar": "^2.0.3", - "colors": "^1.1.0", - "connect": "^3.6.0", - "core-js": "^2.2.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^4.17.11", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "2.1.1", - "source-map": "^0.6.1", - "tmp": "0.0.33", - "useragent": "2.3.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - } - } - }, - "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha1-zxudBxNswY/iOTJ9JGVMPbw2is8=", - "requires": { - "fs-access": "^1.0.0", - "which": "^1.2.1" - } - }, - "karma-coverage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.2.tgz", - "integrity": "sha1-zAnc61iagxAayl/nDCh2Re84dok=", - "requires": { - "dateformat": "^1.0.6", - "istanbul": "^0.4.0", - "lodash": "^4.17.0", - "minimatch": "^3.0.0", - "source-map": "^0.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "karma-mocha": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz", - "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=", - "requires": { - "minimist": "1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "karma-sinon": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/karma-sinon/-/karma-sinon-1.0.5.tgz", - "integrity": "sha1-TjRD8oMP3s/2JNN0cWPxIX2qKpo=" - }, - "karma-sourcemap-loader": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", - "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", - "requires": { - "graceful-fs": "^4.1.2" - } - }, - "karma-webpack": { - "version": "4.0.0-rc.6", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.0-rc.6.tgz", - "integrity": "sha1-AqxqR8f8FmyLIIRGBppCRpgIJAU=", - "requires": { - "async": "^2.0.0", - "loader-utils": "^1.1.0", - "source-map": "^0.5.6", - "webpack-dev-middleware": "^3.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "requires": { - "package-json": "^4.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lit-element": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.1.0.tgz", - "integrity": "sha1-hbw/HaAif0sT3oob6Xgim5+jJ+k=", - "requires": { - "lit-html": "^1.0.0" - } - }, - "lit-html": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.0.0.tgz", - "integrity": "sha1-PcN4GoymiptcL/KmHiY2YrmyJns=" - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha1-Am8S/nwxFZkolqwCugIrqSlxuXk=" - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "requires": { - "chalk": "^2.0.1" - } - }, - "log4js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.1.0.tgz", - "integrity": "sha1-V5g8akQ1RqjIYH6csEXSoRfCdkQ=", - "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.2", - "streamroller": "^1.0.4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "loglevelnext": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", - "integrity": "sha1-NvxPWZbWZA9Tn/IDuoGWQWgNdaI=", - "requires": { - "es6-symbol": "^3.1.1", - "object.assign": "^4.1.0" - } - }, - "lolex": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.0.1.tgz", - "integrity": "sha1-SpnCJRV51pPGoINEba4OXDhE0/o=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "meant": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha1-ZgRP6i8jIw7IBvtRXv6inETSEV0=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha1-38c9Y6mvxxSl43F2DrXIi5EHiqQ=", - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - } - }, - "merge-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", - "integrity": "sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=", - "requires": { - "is-plain-obj": "^1.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", - "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==" - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha1-+6TIGRM54T7PTWG+sD8HAQPz2VQ=", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=" - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha1-udFeTXHGdikIZUtRg+04t1M0CDU=" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nise": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz", - "integrity": "sha1-rkagmiZDb66Ro4pgkZNWrm2xQ7Y=", - "requires": { - "@sinonjs/formatio": "^3.1.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "lolex": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", - "integrity": "sha1-ETAB1Wv8fgLVbjYpHMXEE9GqBzM=" - } - } - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha1-X5QmPUBPbkR2fXJpAf/wVHjWAN8=", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha1-CcU4VTd1dTEMymL1W7M0q/97PtI=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha1-y1Reeqt4VivrEao7+rxwQuF2EDU=", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "ora": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", - "integrity": "sha1-bK8oMOuSSUGGHsU6FzeZ4Ai1Hls=", - "requires": { - "chalk": "^2.3.1", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.1.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^4.0.0", - "wcwidth": "^1.0.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha1-AQEhG6pwxLykoPY/Igbpe3368lg=" - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha1-9r8pOBgzK9DatU77Fgh3JHRebKg=", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=" - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" - }, - "path-posix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", - "integrity": "sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8=" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - }, - "plur": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plur/-/plur-3.0.1.tgz", - "integrity": "sha1-JoZS1gX4FmmbQrhiSN5zyazQanw=", - "requires": { - "irregular-plurals": "^2.0.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "pretty-bytes": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.1.0.tgz", - "integrity": "sha1-Yjfs+9xlJb6u9N5yLMYKWK4ObG0=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" - }, - "puppeteer": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.15.0.tgz", - "integrity": "sha512-D2y5kwA9SsYkNUmcBzu9WZ4V1SGHiQTmgvDZSx6sRYFsgV25IebL4V6FaHjF6MbwLK9C6f3G3pmck9qmwM8H3w==", - "requires": { - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^2.2.1", - "mime": "^2.0.3", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - } - } - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha1-xF6cYYAL0IfviNfiVkI73Unl0HE=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=" - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha1-0wLFIpSFiISKjTAMkytEwkIx2oA=", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "redux": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.1.tgz", - "integrity": "sha1-Q2yubMQPvkcnaJ18j65EgI8b/vU=", - "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=" - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha1-hR/UkDjuy1hpERFa+EUmDuyYPyA=", - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "requires": { - "rc": "^1.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha1-gvHsGaQjrB+9CAsLqwa6NuhKeiY=", - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" - }, - "rfdc": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz", - "integrity": "sha1-5uctdPXcOd6PU49l4Aw2wYAY40k=" - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", - "requires": { - "glob": "^7.0.5" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", - "integrity": "sha1-JH1SdBENtlNwa1UPzCt5fKKM/Fk=", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - } - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha1-ff3YgUvbfKvHvg+x1zTPtmyUBHc=" - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "requires": { - "semver": "^5.0.3" - } - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha1-GqM2FiyIqJDdrVOEuuvJOmVRYf4=" - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "sinon": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.3.2.tgz", - "integrity": "sha1-gtujpthfbSGB4eyiwQ2GV8IWHyg=", - "requires": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.1", - "diff": "^3.5.0", - "lolex": "^4.0.1", - "nise": "^1.4.10", - "supports-color": "^5.5.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha1-oGnF/qvuPmshSnW0DOBlLhz7mYA=", - "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha1-3LOBA0NqtFeN2wJmOK4vIbYjZx8=", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha1-58Yii2qh+BTmFIrqMltRqpSZ4Hc=", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha1-GbtAnpG0exrVQVkkP3MSqFjbPC4=", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha1-4qMDI2ysVLBAMfp6WnnH5wHfhS8=" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "streamroller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.4.tgz", - "integrity": "sha1-1IXHYkeW1eLrNBkMea/L8AavteY=", - "requires": { - "async": "^2.6.1", - "date-format": "^2.0.0", - "debug": "^3.1.0", - "fs-extra": "^7.0.0", - "lodash": "^4.17.10" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=" - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - } - }, - "tapable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", - "integrity": "sha1-DQdqFy49m6CI/SJysmaPuNGUt4w=" - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha1-HSjj0qrfHVpZlsTp+VYBzQU0gK4=", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "titleize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.1.tgz", - "integrity": "sha1-Ibwk/Mpljq3G0708OPK9FzdptMU=" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=" - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=", - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } - }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha1-dfVIFghYFjoIZD4IbV/v4YpdZ94=", - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha1-n+FTahCmZKZSZqHjzPhf02MCvJw=" - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha1-NSVll+RqWB20eT0M5H+prr/J+r0=" - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha1-0HRFk+E/Fh5AassdlAi3LK0Ir/Y=", - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" - }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha1-IX+UOtVAyyEoZYqyP8lg9qiMmXI=", - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha1-OqASW/5mikZy3liFfTrOJ+y3aQE=", - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha1-pCiyi7JnkHNMT8i8n6EG/M6/amw=" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" - }, - "vulcanize": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/vulcanize/-/vulcanize-1.16.0.tgz", - "integrity": "sha1-sM47AETRlK1JCK5PGmxhEKbk1eY=", - "requires": { - "dom5": "^1.3.1", - "es6-promise": "^2.1.0", - "hydrolysis": "^1.19.1", - "nopt": "^3.0.1", - "path-posix": "^1.0.0" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, - "webpack": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.23.1.tgz", - "integrity": "sha1-23RnsRZ3GuAgxYvf4qCCJ4W7gjk=", - "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-module-context": "1.7.10", - "@webassemblyjs/wasm-edit": "1.7.10", - "@webassemblyjs/wasm-parser": "1.7.10", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "uglifyjs-webpack-plugin": "^1.2.4", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", - "integrity": "sha1-JH1SdBENtlNwa1UPzCt5fKKM/Fk=", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha1-UL8wcekzi83EMzF5Sgy1M/ATYXI=", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - } - } - }, - "webpack-command": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webpack-command/-/webpack-command-0.4.1.tgz", - "integrity": "sha1-P4iq6HwoKS7QqXKTYVouliocZvQ=", - "requires": { - "@webpack-contrib/config-loader": "^1.2.0", - "@webpack-contrib/schema-utils": "^1.0.0-beta.0", - "camelcase": "^5.0.0", - "chalk": "^2.3.2", - "debug": "^3.1.0", - "decamelize": "^2.0.0", - "enhanced-resolve": "^4.0.0", - "import-local": "^1.0.0", - "isobject": "^3.0.1", - "loader-utils": "^1.1.0", - "log-symbols": "^2.2.0", - "loud-rejection": "^1.6.0", - "meant": "^1.0.1", - "meow": "^5.0.0", - "merge-options": "^1.0.0", - "object.values": "^1.0.4", - "opn": "^5.3.0", - "ora": "^2.1.0", - "plur": "^3.0.0", - "pretty-bytes": "^5.0.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "titleize": "^1.0.1", - "update-notifier": "^2.3.0", - "v8-compile-cache": "^2.0.0", - "webpack-log": "^1.1.2", - "wordwrap": "^1.0.0" - } - }, - "webpack-dev-middleware": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.6.2.tgz", - "integrity": "sha1-83onrXwJzX3GfNl2VUE6uqH1WUI=", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - } - } - }, - "webpack-log": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", - "integrity": "sha1-pLNM2msitRjbsKsy5WeWLVxypD0=", - "requires": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "loglevelnext": "^1.0.1", - "uuid": "^3.1.0" - } - }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha1-KijcufH0X+lg2PFJMlK17mUw+oU=", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", - "requires": { - "string-width": "^2.1.1" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha1-rsxAWXb6talVJhgIRvDboojzpKA=", - "requires": { - "errno": "~0.1.7" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha1-5pgYneSd0qGMxWh7BeF8jkOUMCA=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha1-cgImW4n36eny5XZeD+c1qQXtuqg=", - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "requires": { - "fd-slicer": "~1.0.1" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - } - } -}
diff --git a/systrace/catapult/common/node_runner/node_runner/package.json b/systrace/catapult/common/node_runner/node_runner/package.json index 526650d..27d0325 100644 --- a/systrace/catapult/common/node_runner/node_runner/package.json +++ b/systrace/catapult/common/node_runner/node_runner/package.json
@@ -8,57 +8,15 @@ }, "main": "index.js", "scripts": { - "test": "cd ../../../dashboard/dashboard/spa && karma start --coverage --no-colors" + "test": "echo \"Error: no test specified\" && exit 1" }, "author": "The Chromium Authors", "license": "BSD-2-Clause", "gypfile": false, "private": true, "dependencies": { - "dot-prop-immutable": "1.5.0", - "@chopsui/result-channel": "0.1.0", - "@chopsui/batch-iterator": "0.1.0", - "@chopsui/chops-button": "0.1.11", - "@chopsui/chops-checkbox": "0.1.11", - "@chopsui/chops-input": "0.1.11", - "@chopsui/chops-loading": "0.1.11", - "@chopsui/chops-radio": "0.1.11", - "@chopsui/chops-radio-group": "0.1.11", - "@chopsui/chops-switch": "0.1.11", - "@chopsui/chops-tab": "0.1.11", - "@chopsui/chops-tab-bar": "0.1.11", - "@chopsui/chops-textarea": "0.1.11", - "@chopsui/tsmon-client": "0.0.1", - "@chopsui/chops-header": "0.1.5", - "@chopsui/chops-signin": "0.1.5", - "@polymer/app-route": "^3.0.0", - "@polymer/iron-collapse": "^3.0.0", - "@polymer/iron-icon": "^3.0.0", - "@polymer/iron-iconset-svg": "^3.0.0", - "@polymer/polymer": "^3.0.0", - "chai": "^4.0.2", - "dom5": "^1.0.0", - "escodegen": "^1.11.0", - "eslint": "^4.0.0", + "eslint": "^3.14.1", "eslint-config-google": "^0.6.0", - "eslint-plugin-html": "^4.0.0", - "espree": "^3.0.0", - "istanbul-instrumenter-loader": "^3.0.1", - "lit-element": "^2.0.0", - "karma": "^4.0.0", - "karma-chrome-launcher": "^2.2.0", - "karma-coverage": "^1.1.2", - "karma-mocha": "^1.3.0", - "karma-sinon": "^1.0.5", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "4.0.0-rc.6", - "mocha": "^5.2.0", - "path": "^0.12.7", - "puppeteer": "^1.10.0", - "redux": "^4.0.0", - "sinon": "^7.2.3", - "vulcanize": "^1.16.0", - "webpack": "^4.16.1", - "webpack-command": "^0.4.1" + "eslint-plugin-html": "^2.0.0" } }
diff --git a/systrace/catapult/common/py_trace_event/bin/run_tests b/systrace/catapult/common/py_trace_event/bin/run_tests deleted file mode 100755 index b9e1cbe..0000000 --- a/systrace/catapult/common/py_trace_event/bin/run_tests +++ /dev/null
@@ -1,35 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2015 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import os -import sys - -_CATAPULT_PATH = os.path.abspath( - os.path.join(os.path.dirname(__file__), '..', '..', '..')) - -_PY_TRACE_EVENT_PATH = os.path.abspath( - os.path.join(os.path.dirname(__file__), '..')) - - -def _RunTestsOrDie(top_level_dir): - # Need everything in one process for tracing to work. - exit_code = run_with_typ.Run( - top_level_dir, path=[_PY_TRACE_EVENT_PATH], jobs=1) - if exit_code: - sys.exit(exit_code) - - -def _AddToPathIfNeeded(path): - if path not in sys.path: - sys.path.insert(0, path) - - -if __name__ == '__main__': - _AddToPathIfNeeded(_CATAPULT_PATH) - - from catapult_build import run_with_typ - - _RunTestsOrDie(_PY_TRACE_EVENT_PATH) -
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/__init__.py b/systrace/catapult/common/py_trace_event/py_trace_event/__init__.py index 2cd8dd1..b8b6630 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/__init__.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/__init__.py
@@ -6,7 +6,4 @@ SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) PY_UTILS = os.path.abspath(os.path.join(SCRIPT_DIR, '..', '..', 'py_utils')) -PROTOBUF = os.path.abspath(os.path.join( - SCRIPT_DIR, '..', 'third_party', 'protobuf')) sys.path.append(PY_UTILS) -sys.path.append(PROTOBUF)
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/run_tests b/systrace/catapult/common/py_trace_event/py_trace_event/run_tests new file mode 100755 index 0000000..7f9673d --- /dev/null +++ b/systrace/catapult/common/py_trace_event/py_trace_event/run_tests
@@ -0,0 +1,163 @@ +#!/usr/bin/env python +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +import logging +import optparse +import os +import platform +import re +import sys +import types +import traceback +import unittest + + +def discover(dir, filters): + if hasattr(unittest.TestLoader, 'discover'): + return unittest.TestLoader().discover(dir, '*') + + # poor mans unittest.discover + loader = unittest.TestLoader() + subsuites = [] + + for (dirpath, dirnames, filenames) in os.walk(dir): + for filename in [x for x in filenames if re.match('.*_test\.py$', x)]: + if filename.startswith('.') or filename.startswith('_'): + continue + fqn = dirpath.replace( + '/', '.') + '.' + re.match('(.+)\.py$', filename).group(1) + + # load the test + try: + module = __import__(fqn,fromlist=[True]) + except: + print "While importing [%s]\n" % fqn + traceback.print_exc() + continue + + def test_is_selected(name): + for f in filters: + if re.search(f,name): + return True + return False + + if hasattr(module, 'suite'): + base_suite = module.suite() + else: + base_suite = loader.loadTestsFromModule(module) + new_suite = unittest.TestSuite() + for t in base_suite: + if isinstance(t, unittest.TestSuite): + for i in t: + if test_is_selected(i.id()): + new_suite.addTest(i) + elif isinstance(t, unittest.TestCase): + if test_is_selected(t.id()): + new_suite.addTest(t) + else: + raise Exception("Wtf, expected TestSuite or TestCase, got %s" % t) + + if new_suite.countTestCases(): + subsuites.append(new_suite) + + return unittest.TestSuite(subsuites) + + +def main(): + parser = optparse.OptionParser() + parser.add_option( + '-v', '--verbose', action='count', default=0, + help='Increase verbosity level (repeat as needed)') + parser.add_option('--debug', dest='debug', action='store_true', default=False, + help='Break into pdb when an assertion fails') + parser.add_option('--incremental', dest='incremental', action='store_true', + default=False, help='Run tests one at a time.') + parser.add_option('--stop', dest='stop_on_error', action='store_true', + default=False, help='Stop running tests on error.') + (options, args) = parser.parse_args() + + if options.verbose >= 2: + logging.basicConfig(level=logging.DEBUG) + elif options.verbose: + logging.basicConfig(level=logging.INFO) + else: + logging.basicConfig(level=logging.WARNING) + + # install hook on set_trace if --debug + if options.debug: + import exceptions + class DebuggingAssertionError(exceptions.AssertionError): + def __init__(self, *args): + exceptions.AssertionError.__init__(self, *args) + print "Assertion failed, entering PDB..." + import pdb + if hasattr(sys, '_getframe'): + pdb.Pdb().set_trace(sys._getframe().f_back.f_back) + else: + pdb.set_trace() + unittest.TestCase.failureException = DebuggingAssertionError + + def hook(*args): + import traceback, pdb + traceback.print_exception(*args) + pdb.pm() + sys.excepthook = hook + + import browser + browser.debug_mode = True + + else: + def hook(exc, value, tb): + import traceback + if not str(value).startswith("_noprint"): + traceback.print_exception(exc, value, tb) + import src.message_loop + if src.message_loop.is_main_loop_running(): + if not str(value).startswith("_noprint"): + print "Untrapped exception! Exiting message loop with exception." + src.message_loop.quit_main_loop(quit_with_exception=True) + + sys.excepthook = hook + + # make sure cwd is the base directory! + os.chdir(os.path.dirname(__file__)) + + if len(args) > 0: + suites = discover('trace_event_impl', args) + else: + suites = discover('trace_event_impl', ['.*']) + + r = unittest.TextTestRunner() + if not options.incremental: + res = r.run(suites) + if res.wasSuccessful(): + return 0 + return 255 + else: + ok = True + for s in suites: + if isinstance(s, unittest.TestSuite): + for t in s: + print '--------------------------------------------------------------' + print 'Running %s' % str(t) + res = r.run(t) + if not res.wasSuccessful(): + ok = False + if options.stop_on_error: + break + if ok == False and options.stop_on_error: + break + else: + res = r.run(s) + if not res.wasSuccessful(): + ok = False + if options.stop_on_error: + break + if ok: + return 0 + return 255 + + +if __name__ == "__main__": + sys.exit(main())
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event.py index f87c278..7745963 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event.py
@@ -66,20 +66,15 @@ # used in class definition scope. TracedMetaClass = type - if trace_event_impl: import time - # Trace file formats - JSON = trace_event_impl.JSON - JSON_WITH_METADATA = trace_event_impl.JSON_WITH_METADATA - PROTOBUF = trace_event_impl.PROTOBUF def trace_is_enabled(): return trace_event_impl.trace_is_enabled() - def trace_enable(logfile, format=None): - return trace_event_impl.trace_enable(logfile, format) + def trace_enable(logfile): + return trace_event_impl.trace_enable(logfile) def trace_disable(): return trace_event_impl.trace_disable() @@ -99,9 +94,6 @@ trace_event_impl.add_trace_event("M", trace_time.Now(), "__metadata", "thread_name", {"name": thread_name}) - def trace_add_benchmark_metadata(*args, **kwargs): - trace_event_impl.trace_add_benchmark_metadata(*args, **kwargs) - def trace(name, **kwargs): return trace_event_impl.trace(name, **kwargs) @@ -132,11 +124,6 @@ else: import contextlib - # Trace file formats - JSON = None - JSON_WITH_METADATA = None - PROTOBUF = None - def trace_enable(): raise TraceException( "Cannot enable trace_event. No trace_event_impl module found.")
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators_test.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators_test.py index 434a351..5bb13ad 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators_test.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators_test.py
@@ -47,8 +47,7 @@ def test_func_names_work(self): - expected_method_name = __name__ + '.traced_func' - self.assertEquals(expected_method_name, + self.assertEquals('__main__.traced_func', self._get_decorated_method_name(traced_func)) def test_method_names_work(self):
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log.py index 7af86da..2d69f08 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log.py
@@ -7,47 +7,24 @@ import sys import time import threading -import multiprocessing -import multiprocessing_shim -from py_trace_event.trace_event_impl import perfetto_trace_writer from py_trace_event import trace_time from py_utils import lock -# Trace file formats: - -# Legacy format: json list of events. -# Events can be written from multiple processes, but since no process -# can be sure that it is the last one, nobody writes the closing ']'. -# So the resulting file is not technically correct json. -JSON = "json" - -# Full json with events and metadata. -# This format produces correct json ready to feed into TraceDataBuilder. -# Note that it is the responsibility of the user of py_trace_event to make sure -# that trace_disable() is called after all child processes have finished. -JSON_WITH_METADATA = "json_with_metadata" - -# Perfetto protobuf trace format. -PROTOBUF = "protobuf" - - _lock = threading.Lock() _enabled = False _log_file = None _cur_events = [] # events that have yet to be buffered -_benchmark_metadata = {} _tls = threading.local() # tls used to detect forking/etc _atexit_regsitered_for_pid = None _control_allowed = True -_original_multiprocessing_process = multiprocessing.Process class TraceException(Exception): pass @@ -71,64 +48,11 @@ global _control_allowed _control_allowed = False -def trace_enable(log_file=None, format=None): - """ Enable tracing. - - Args: - log_file: file to write trace into. Can be a file-like object, - a name of file, or None. If None, file name is constructed - from executable name. - format: trace file format. See trace_event.py for available options. - """ - if format is None: - format = JSON - _trace_enable(log_file, format) - -def _write_header(): - tid = threading.current_thread().ident - if not tid: - tid = os.getpid() - - if _format == PROTOBUF: - tid = threading.current_thread().ident - perfetto_trace_writer.write_thread_descriptor_event( - output=_log_file, - pid=os.getpid(), - tid=tid, - ts=trace_time.Now(), - ) - perfetto_trace_writer.write_event( - output=_log_file, - ph="M", - category="process_argv", - name="process_argv", - ts=trace_time.Now(), - args=sys.argv, - tid=tid, - ) - else: - if _format == JSON: - _log_file.write('[') - elif _format == JSON_WITH_METADATA: - _log_file.write('{"traceEvents": [\n') - else: - raise TraceException("Unknown format: %s" % _format) - json.dump({ - "ph": "M", - "category": "process_argv", - "pid": os.getpid(), - "tid": threading.current_thread().ident, - "ts": trace_time.Now(), - "name": "process_argv", - "args": {"argv": sys.argv}, - }, _log_file) - _log_file.write('\n') - +def trace_enable(log_file=None): + _trace_enable(log_file) @_locked -def _trace_enable(log_file=None, format=None): - global _format - _format = format +def _trace_enable(log_file=None): global _enabled if _enabled: raise TraceException("Already enabled") @@ -141,18 +65,15 @@ n = 'trace_event' else: n = sys.argv[0] - if _format == PROTOBUF: - log_file = open("%s.pb" % n, "ab", False) - else: - log_file = open("%s.json" % n, "ab", False) + log_file = open("%s.json" % n, "ab", False) + _note("trace_event: tracelog name is %s.json" % n) elif isinstance(log_file, basestring): + _note("trace_event: tracelog name is %s" % log_file) log_file = open("%s" % log_file, "ab", False) elif not hasattr(log_file, 'fileno'): raise TraceException( "Log file must be None, a string, or file-like object with a fileno()") - _note("trace_event: tracelog name is %s" % log_file) - _log_file = log_file with lock.FileLock(_log_file, lock.LOCK_EX): _log_file.seek(0, os.SEEK_END) @@ -161,13 +82,19 @@ creator = lastpos == 0 if creator: _note("trace_event: Opened new tracelog, lastpos=%i", lastpos) - _write_header() + _log_file.write('[') + + tid = threading.current_thread().ident + if not tid: + tid = os.getpid() + x = {"ph": "M", "category": "process_argv", + "pid": os.getpid(), "tid": threading.current_thread().ident, + "ts": trace_time.Now(), + "name": "process_argv", "args": {"argv": sys.argv}} + _log_file.write("%s\n" % json.dumps(x)) else: _note("trace_event: Opened existing tracelog") _log_file.flush() - # Monkeypatch in our process replacement for the multiprocessing.Process class - if multiprocessing.Process != multiprocessing_shim.ProcessShim: - multiprocessing.Process = multiprocessing_shim.ProcessShim @_locked def trace_flush(): @@ -183,52 +110,22 @@ return _enabled = False _flush(close=True) - multiprocessing.Process = _original_multiprocessing_process - -def _write_cur_events(): - if _format == PROTOBUF: - for e in _cur_events: - perfetto_trace_writer.write_event( - output=_log_file, - ph=e["ph"], - category=e["category"], - name=e["name"], - ts=e["ts"], - args=e["args"], - tid=threading.current_thread().ident, - ) - elif _format in (JSON, JSON_WITH_METADATA): - for e in _cur_events: - _log_file.write(",\n") - json.dump(e, _log_file) - else: - raise TraceException("Unknown format: %s" % _format) - del _cur_events[:] - -def _write_footer(): - if _format in [JSON, PROTOBUF]: - # In JSON format we might not be the only process writing to this logfile. - # So, we will simply close the file rather than writing the trailing ] that - # it technically requires. The trace viewer understands this and - # will insert a trailing ] during loading. - # In PROTOBUF format there's no need for a footer. The metadata has already - # been written in a special proto message. - pass - elif _format == JSON_WITH_METADATA: - _log_file.write('],\n"metadata": ') - json.dump(_benchmark_metadata, _log_file) - _log_file.write('}') - else: - raise TraceException("Unknown format: %s" % _format) def _flush(close=False): global _log_file with lock.FileLock(_log_file, lock.LOCK_EX): _log_file.seek(0, os.SEEK_END) if len(_cur_events): - _write_cur_events() + _log_file.write(",\n") + _log_file.write(",\n".join([json.dumps(e) for e in _cur_events])) + del _cur_events[:] + if close: - _write_footer() + # We might not be the only process writing to this logfile. So, + # we will simply close the file rather than writign the trailing ] that + # it technically requires. The trace viewer understands that this may + # happen and will insert a trailing ] during loading. + pass _log_file.flush() if close: @@ -260,15 +157,13 @@ tid = os.getpid() _tls.tid = tid - _cur_events.append({ - "ph": ph, - "category": category, - "pid": _tls.pid, - "tid": _tls.tid, - "ts": ts, - "name": name, - "args": args or {}, - }); + _cur_events.append({"ph": ph, + "category": category, + "pid": _tls.pid, + "tid": _tls.tid, + "ts": ts, + "name": name, + "args": args or {}}); def trace_begin(name, args=None): add_trace_event("B", trace_time.Now(), "python", name, args) @@ -280,82 +175,6 @@ add_trace_event("M", trace_time.Now(), "__metadata", "thread_name", {"name": thread_name}) -def trace_add_benchmark_metadata( - benchmark_start_time_us, - story_run_time_us, - benchmark_name, - benchmark_description, - story_name, - story_tags, - story_run_index, - label=None, - had_failures=None, -): - """ Add benchmark metadata to be written to trace file. - - Args: - benchmark_start_time_us: Benchmark start time in microseconds. - story_run_time_us: Story start time in microseconds. - benchmark_name: Name of the benchmark. - benchmark_description: Description of the benchmark. - story_name: Name of the story. - story_tags: List of story tags. - story_run_index: Index of the story run. - label: Optional label. - had_failures: Whether this story run failed. - """ - global _benchmark_metadata - if _format == PROTOBUF: - # Write metadata immediately. - perfetto_trace_writer.write_metadata( - output=_log_file, - benchmark_start_time_us=benchmark_start_time_us, - story_run_time_us=story_run_time_us, - benchmark_name=benchmark_name, - benchmark_description=benchmark_description, - story_name=story_name, - story_tags=story_tags, - story_run_index=story_run_index, - label=label, - had_failures=had_failures, - ) - elif _format == JSON_WITH_METADATA: - # Store metadata to write it in the footer. - telemetry_metadata_for_json = { - "benchmarkStart": benchmark_start_time_us / 1000.0, - "traceStart": story_run_time_us / 1000.0, - "benchmarks": [benchmark_name], - "benchmarkDescriptions": [benchmark_description], - "stories": [story_name], - "storyTags": story_tags, - "storysetRepeats": [story_run_index], - } - if label: - telemetry_metadata_for_json["labels"] = [label] - if had_failures: - telemetry_metadata_for_json["hadFailures"] = [had_failures] - - _benchmark_metadata = { - # TODO(crbug.com/948633): For right now, we use "TELEMETRY" as the - # clock domain to guarantee that Telemetry is given its own clock - # domain. Telemetry isn't really a clock domain, though: it's a - # system that USES a clock domain like LINUX_CLOCK_MONOTONIC or - # WIN_QPC. However, there's a chance that a Telemetry controller - # running on Linux (using LINUX_CLOCK_MONOTONIC) is interacting - # with an Android phone (also using LINUX_CLOCK_MONOTONIC, but - # on a different machine). The current logic collapses clock - # domains based solely on the clock domain string, but we really - # should to collapse based on some (device ID, clock domain ID) - # tuple. Giving Telemetry its own clock domain is a work-around - # for this. - "clock-domain": "TELEMETRY", - "telemetry": telemetry_metadata_for_json, - } - elif _format == JSON: - raise TraceException("Can't write metadata in JSON format") - else: - raise TraceException("Unknown format: %s" % _format) - def _trace_disable_atexit(): trace_disable()
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log_io_test.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log_io_test.py index 6c03ea8..99a0621 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log_io_test.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log_io_test.py
@@ -5,34 +5,38 @@ import logging import os import sys +import tempfile import unittest from log import * from parsed_trace_events import * -from py_utils import tempfile_ext class LogIOTest(unittest.TestCase): def test_enable_with_file(self): - with tempfile_ext.TemporaryFileName() as filename: - trace_enable(open(filename, 'w+')) - trace_disable() - e = ParsedTraceEvents(trace_filename=filename) - self.assertTrue(len(e) > 0) + file = tempfile.NamedTemporaryFile() + trace_enable(open(file.name, 'w+')) + trace_disable() + e = ParsedTraceEvents(trace_filename = file.name) + file.close() + self.assertTrue(len(e) > 0) def test_enable_with_filename(self): - with tempfile_ext.TemporaryFileName() as filename: - trace_enable(filename) - trace_disable() - e = ParsedTraceEvents(trace_filename=filename) - self.assertTrue(len(e) > 0) + file = tempfile.NamedTemporaryFile() + trace_enable(file.name) + trace_disable() + e = ParsedTraceEvents(trace_filename = file.name) + file.close() + self.assertTrue(len(e) > 0) def test_enable_with_implicit_filename(self): expected_filename = "%s.json" % sys.argv[0] def do_work(): + file = tempfile.NamedTemporaryFile() trace_enable() trace_disable() - e = ParsedTraceEvents(trace_filename=expected_filename) + e = ParsedTraceEvents(trace_filename = expected_filename) + file.close() self.assertTrue(len(e) > 0) try: do_work()
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py index 7aaa3fa..4ede79b 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py
@@ -10,8 +10,7 @@ class TracedMetaClass(type): def __new__(cls, name, bases, attrs): for attr_name, attr_value in attrs.iteritems(): - if (not attr_name.startswith('_') and - isinstance(attr_value, types.FunctionType)): + if isinstance(attr_value, types.FunctionType): attrs[attr_name] = decorators.traced(attr_value) return super(TracedMetaClass, cls).__new__(cls, name, bases, attrs)
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/multiprocessing_shim.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/multiprocessing_shim.py index c2295ed..9796bdf 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/multiprocessing_shim.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/multiprocessing_shim.py
@@ -86,3 +86,7 @@ def __repr__(self): return self._proc.__repr__() + +# Monkeypatch in our process replacement. +if multiprocessing.Process != ProcessShim: + multiprocessing.Process = ProcessShim
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py deleted file mode 100644 index 2da179b..0000000 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py +++ /dev/null
@@ -1,222 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" Classes representing perfetto trace protobuf messages. - -This module makes use of neither python-protobuf library nor python classes -compiled from .proto definitions, because currently there's no way to -deploy those to all the places where telemetry is run. - -TODO(crbug.com/944078): Remove this module after the python-protobuf library -is deployed to all the bots. - -Definitions of perfetto messages can be found here: -https://android.googlesource.com/platform/external/perfetto/+/refs/heads/master/protos/perfetto/trace/ -""" - -import encoder -import wire_format - - -class TracePacket(object): - def __init__(self): - self.interned_data = None - self.thread_descriptor = None - self.incremental_state_cleared = None - self.track_event = None - self.trusted_packet_sequence_id = None - self.chrome_benchmark_metadata = None - - def encode(self): - parts = [] - if self.trusted_packet_sequence_id is not None: - writer = encoder.UInt32Encoder(10, False, False) - writer(parts.append, self.trusted_packet_sequence_id) - if self.track_event is not None: - tag = encoder.TagBytes(11, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.track_event.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - if self.interned_data is not None: - tag = encoder.TagBytes(12, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.interned_data.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - if self.incremental_state_cleared is not None: - writer = encoder.BoolEncoder(41, False, False) - writer(parts.append, self.incremental_state_cleared) - if self.thread_descriptor is not None: - tag = encoder.TagBytes(44, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.thread_descriptor.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - if self.chrome_benchmark_metadata is not None: - tag = encoder.TagBytes(48, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.chrome_benchmark_metadata.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - - return b"".join(parts) - - -class InternedData(object): - def __init__(self): - self.event_category = None - self.legacy_event_name = None - - def encode(self): - parts = [] - if self.event_category is not None: - tag = encoder.TagBytes(1, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.event_category.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - if self.legacy_event_name is not None: - tag = encoder.TagBytes(2, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.legacy_event_name.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - - return b"".join(parts) - - -class EventCategory(object): - def __init__(self): - self.iid = None - self.name = None - - def encode(self): - if (self.iid is None or self.name is None): - raise RuntimeError("Missing mandatory fields.") - - parts = [] - writer = encoder.UInt32Encoder(1, False, False) - writer(parts.append, self.iid) - writer = encoder.StringEncoder(2, False, False) - writer(parts.append, self.name) - - return b"".join(parts) - - -LegacyEventName = EventCategory - - -class ThreadDescriptor(object): - def __init__(self): - self.pid = None - self.tid = None - self.reference_timestamp_us = None - - def encode(self): - if (self.pid is None or self.tid is None or - self.reference_timestamp_us is None): - raise RuntimeError("Missing mandatory fields.") - - parts = [] - writer = encoder.UInt32Encoder(1, False, False) - writer(parts.append, self.pid) - writer = encoder.UInt32Encoder(2, False, False) - writer(parts.append, self.tid) - writer = encoder.Int64Encoder(6, False, False) - writer(parts.append, self.reference_timestamp_us) - - return b"".join(parts) - - -class TrackEvent(object): - def __init__(self): - self.timestamp_absolute_us = None - self.timestamp_delta_us = None - self.legacy_event = None - self.category_iids = None - - def encode(self): - parts = [] - if self.timestamp_delta_us is not None: - writer = encoder.Int64Encoder(1, False, False) - writer(parts.append, self.timestamp_delta_us) - if self.category_iids is not None: - writer = encoder.UInt32Encoder(3, is_repeated=True, is_packed=False) - writer(parts.append, self.category_iids) - if self.legacy_event is not None: - tag = encoder.TagBytes(6, wire_format.WIRETYPE_LENGTH_DELIMITED) - data = self.legacy_event.encode() - length = encoder._VarintBytes(len(data)) - parts += [tag, length, data] - if self.timestamp_absolute_us is not None: - writer = encoder.Int64Encoder(16, False, False) - writer(parts.append, self.timestamp_absolute_us) - - return b"".join(parts) - - -class LegacyEvent(object): - def __init__(self): - self.phase = None - self.name_iid = None - - def encode(self): - parts = [] - if self.name_iid is not None: - writer = encoder.UInt32Encoder(1, False, False) - writer(parts.append, self.name_iid) - if self.phase is not None: - writer = encoder.Int32Encoder(2, False, False) - writer(parts.append, self.phase) - - return b"".join(parts) - - -class ChromeBenchmarkMetadata(object): - def __init__(self): - self.benchmark_start_time_us = None - self.story_run_time_us = None - self.benchmark_name = None - self.benchmark_description = None - self.story_name = None - self.story_tags = None - self.story_run_index = None - self.label = None - self.had_failures = None - - def encode(self): - parts = [] - if self.benchmark_start_time_us is not None: - writer = encoder.Int64Encoder(1, False, False) - writer(parts.append, self.benchmark_start_time_us) - if self.story_run_time_us is not None: - writer = encoder.Int64Encoder(2, False, False) - writer(parts.append, self.story_run_time_us) - if self.benchmark_name is not None: - writer = encoder.StringEncoder(3, False, False) - writer(parts.append, self.benchmark_name) - if self.benchmark_description is not None: - writer = encoder.StringEncoder(4, False, False) - writer(parts.append, self.benchmark_description) - if self.label is not None: - writer = encoder.StringEncoder(5, False, False) - writer(parts.append, self.label) - if self.story_name is not None: - writer = encoder.StringEncoder(6, False, False) - writer(parts.append, self.story_name) - if self.story_tags is not None: - writer = encoder.StringEncoder(7, is_repeated=True, is_packed=False) - writer(parts.append, self.story_tags) - if self.story_run_index is not None: - writer = encoder.Int32Encoder(8, False, False) - writer(parts.append, self.story_run_index) - if self.had_failures is not None: - writer = encoder.BoolEncoder(9, False, False) - writer(parts.append, self.had_failures) - - return b"".join(parts) - - -def write_trace_packet(output, trace_packet): - tag = encoder.TagBytes(1, wire_format.WIRETYPE_LENGTH_DELIMITED) - output.write(tag) - binary_data = trace_packet.encode() - encoder._EncodeVarint(output.write, len(binary_data)) - output.write(binary_data) -
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer.py deleted file mode 100644 index 3780953..0000000 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer.py +++ /dev/null
@@ -1,166 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" Functions to write trace data in perfetto protobuf format. -""" - -import collections - -import perfetto_proto_classes as proto - - - -# Dicts of strings for interning. -# Note that each thread has its own interning index. -_interned_categories_by_tid = collections.defaultdict(dict) -_interned_event_names_by_tid = collections.defaultdict(dict) - -# Trusted sequence ids from telemetry should not overlap with -# trusted sequence ids from other trace producers. Chrome assigns -# sequence ids incrementally starting from 1 and we expect all its ids -# to be well below 10000. Starting from 2^20 will give us enough -# confidence that it will not overlap. -_next_sequence_id = 1<<20 -_sequence_ids = {} - -# Timestamp of the last event from each thread. Used for delta-encoding -# of timestamps. -_last_timestamps = {} - - -def _get_sequence_id(tid): - global _sequence_ids - global _next_sequence_id - if tid not in _sequence_ids: - _sequence_ids[tid] = _next_sequence_id - _next_sequence_id += 1 - return _sequence_ids[tid] - - -def _intern_category(category, trace_packet, tid): - global _interned_categories_by_tid - categories = _interned_categories_by_tid[tid] - if category not in categories: - # note that interning indices start from 1 - categories[category] = len(categories) + 1 - if trace_packet.interned_data is None: - trace_packet.interned_data = proto.InternedData() - trace_packet.interned_data.event_category = proto.EventCategory() - trace_packet.interned_data.event_category.iid = categories[category] - trace_packet.interned_data.event_category.name = category - return categories[category] - - -def _intern_event_name(event_name, trace_packet, tid): - global _interned_event_names_by_tid - event_names = _interned_event_names_by_tid[tid] - if event_name not in event_names: - # note that interning indices start from 1 - event_names[event_name] = len(event_names) + 1 - if trace_packet.interned_data is None: - trace_packet.interned_data = proto.InternedData() - trace_packet.interned_data.legacy_event_name = proto.LegacyEventName() - trace_packet.interned_data.legacy_event_name.iid = event_names[event_name] - trace_packet.interned_data.legacy_event_name.name = event_name - return event_names[event_name] - - -def write_thread_descriptor_event(output, pid, tid, ts): - """ Write the first event in a sequence. - - Call this function before writing any other events. - Note that this function is NOT thread-safe. - - Args: - output: a file-like object to write events into. - pid: process ID. - tid: thread ID. - ts: timestamp in microseconds. - """ - global _last_timestamps - ts_us = int(ts) - _last_timestamps[tid] = ts_us - - thread_descriptor_packet = proto.TracePacket() - thread_descriptor_packet.trusted_packet_sequence_id = _get_sequence_id(tid) - thread_descriptor_packet.thread_descriptor = proto.ThreadDescriptor() - thread_descriptor_packet.thread_descriptor.pid = pid - # Thread ID from threading module doesn't fit into int32. - # But we don't need the exact thread ID, just some number to - # distinguish one thread from another. We assume that the last 31 bits - # will do for that purpose. - thread_descriptor_packet.thread_descriptor.tid = tid & 0x7FFFFFFF - thread_descriptor_packet.thread_descriptor.reference_timestamp_us = ts_us - thread_descriptor_packet.incremental_state_cleared = True; - - proto.write_trace_packet(output, thread_descriptor_packet) - - -def write_event(output, ph, category, name, ts, args, tid): - """ Write a trace event. - - Note that this function is NOT thread-safe. - - Args: - output: a file-like object to write events into. - ph: phase of event. - category: category of event. - name: event name. - ts: timestamp in microseconds. - args: this argument is currently ignored. - tid: thread ID. - """ - del args # TODO(khokhlov): Encode args as DebugAnnotations. - - global _last_timestamps - ts_us = int(ts) - delta_ts = ts_us - _last_timestamps[tid] - - packet = proto.TracePacket() - packet.trusted_packet_sequence_id = _get_sequence_id(tid) - packet.track_event = proto.TrackEvent() - - if delta_ts >= 0: - packet.track_event.timestamp_delta_us = delta_ts - _last_timestamps[tid] = ts_us - else: - packet.track_event.timestamp_absolute_us = ts_us - - packet.track_event.category_iids = [_intern_category(category, packet, tid)] - legacy_event = proto.LegacyEvent() - legacy_event.phase = ord(ph) - legacy_event.name_iid = _intern_event_name(name, packet, tid) - packet.track_event.legacy_event = legacy_event - proto.write_trace_packet(output, packet) - - -def write_metadata( - output, - benchmark_start_time_us, - story_run_time_us, - benchmark_name, - benchmark_description, - story_name, - story_tags, - story_run_index, - label=None, - had_failures=None, -): - metadata = proto.ChromeBenchmarkMetadata() - metadata.benchmark_start_time_us = int(benchmark_start_time_us) - metadata.story_run_time_us = int(story_run_time_us) - metadata.benchmark_name = benchmark_name - metadata.benchmark_description = benchmark_description - metadata.story_name = story_name - metadata.story_tags = list(story_tags) - metadata.story_run_index = int(story_run_index) - if label is not None: - metadata.label = label - if had_failures is not None: - metadata.had_failures = had_failures - - packet = proto.TracePacket() - packet.chrome_benchmark_metadata = metadata - proto.write_trace_packet(output, packet) -
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer_unittest.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer_unittest.py deleted file mode 100644 index e49a0a4..0000000 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer_unittest.py +++ /dev/null
@@ -1,80 +0,0 @@ -#!/usr/bin/env python -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import unittest -import StringIO - -from py_trace_event.trace_event_impl import perfetto_trace_writer - - -class PerfettoTraceWriterTest(unittest.TestCase): - """ Tests functions that write perfetto protobufs. - - TODO(crbug.com/944078): Switch to using python-protobuf library - and implement proper protobuf parsing then. - """ - - - def testWriteThreadDescriptorEvent(self): - result = StringIO.StringIO() - perfetto_trace_writer.write_thread_descriptor_event( - output=result, - pid=1, - tid=2, - ts=1556716807306000, - ) - expected_output = ( - '\n\x17P\x80\x80@\xc8\x02\x01\xe2\x02\r\x08\x01\x10' - '\x020\x90\xf6\xc2\x82\xb6\xfa\xe1\x02' - ) - self.assertEqual(expected_output, result.getvalue()) - - def testWriteTwoEvents(self): - result = StringIO.StringIO() - perfetto_trace_writer.write_thread_descriptor_event( - output=result, - pid=1, - tid=2, - ts=1556716807306000, - ) - perfetto_trace_writer.write_event( - output=result, - ph="M", - category="category", - name="event_name", - ts=1556716807406000, - args={}, - tid=2, - ) - expected_output = ( - '\n\x17P\x80\x80@\xc8\x02\x01\xe2\x02\r\x08\x01\x10' - '\x020\x90\xf6\xc2\x82\xb6\xfa\xe1\x02\n2P\x80\x80@Z\x0c\x08' - '\xa0\x8d\x06\x18\x012\x04\x08\x01\x10Mb\x1e\n\x0c\x08\x01' - '\x12\x08category\x12\x0e\x08\x01\x12\nevent_name' - ) - self.assertEqual(expected_output, result.getvalue()) - - def testWriteMetadata(self): - result = StringIO.StringIO() - perfetto_trace_writer.write_metadata( - output=result, - benchmark_start_time_us=1556716807306000, - story_run_time_us=1556716807406000, - benchmark_name="benchmark", - benchmark_description="description", - story_name="story", - story_tags=["foo", "bar"], - story_run_index=0, - label="label", - had_failures=False, - ) - expected_output = ( - '\nI\x82\x03F\x08\x90\xf6\xc2\x82\xb6\xfa\xe1' - '\x02\x10\xb0\x83\xc9\x82\xb6\xfa\xe1\x02\x1a\tbenchmark"' - '\x0bdescription*\x05label2\x05story:\x03foo:\x03bar@\x00H\x00' - ) - self.assertEqual(expected_output, result.getvalue()) - -
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/trace_test.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/trace_test.py index 1216037..7047e0e 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/trace_test.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/trace_test.py
@@ -1,6 +1,7 @@ # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import tempfile import unittest #from .log import * @@ -8,7 +9,6 @@ from log import * from parsed_trace_events import * -from py_utils import tempfile_ext class TraceTest(unittest.TestCase): def __init__(self, *args): @@ -25,16 +25,16 @@ Enables tracing, runs the provided callback, and if successful, returns a TraceEvents object with the results. """ - with tempfile_ext.TemporaryFileName() as filename: - self._file = open(filename, 'a+') - trace_enable(self._file) - try: - cb() - finally: - trace_disable() - e = ParsedTraceEvents(trace_filename=self._file.name) - self._file.close() - self._file = None + self._file = tempfile.NamedTemporaryFile() + trace_enable(open(self._file.name, 'a+')) + + try: + cb() + finally: + trace_disable() + e = ParsedTraceEvents(trace_filename = self._file.name) + self._file.close() + self._file = None return e @property
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_unittest.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_unittest.py index 9916c71..f88ef95 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_unittest.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_unittest.py
@@ -8,29 +8,34 @@ import math import multiprocessing import os +import tempfile import time import unittest -import sys from py_trace_event import trace_event from py_trace_event import trace_time from py_trace_event.trace_event_impl import log -from py_trace_event.trace_event_impl import multiprocessing_shim -from py_utils import tempfile_ext class TraceEventTests(unittest.TestCase): + def setUp(self): + tf = tempfile.NamedTemporaryFile(delete=False) + self._log_path = tf.name + tf.close() + + def tearDown(self): + if os.path.exists(self._log_path): + os.remove(self._log_path) + @contextlib.contextmanager - def _test_trace(self, disable=True, format=None): - with tempfile_ext.TemporaryFileName() as filename: - self._log_path = filename - try: - trace_event.trace_enable(self._log_path, format=format) - yield - finally: - if disable: - trace_event.trace_disable() + def _test_trace(self, disable=True): + try: + trace_event.trace_enable(self._log_path) + yield + finally: + if disable: + trace_event.trace_disable() def testNoImpl(self): orig_impl = trace_event.trace_event_impl @@ -72,15 +77,10 @@ assert False def testDisable(self): - _old_multiprocessing_process = multiprocessing.Process with self._test_trace(disable=False): with open(self._log_path, 'r') as f: self.assertTrue(trace_event.trace_is_enabled()) - self.assertEqual( - multiprocessing.Process, multiprocessing_shim.ProcessShim) trace_event.trace_disable() - self.assertEqual( - multiprocessing.Process, _old_multiprocessing_process) self.assertEquals(len(json.loads(f.read() + ']')), 1) self.assertFalse(trace_event.trace_is_enabled()) @@ -187,7 +187,6 @@ with open(self._log_path, 'r') as f: log_output = json.loads(f.read() + ']') self.assertEquals(len(log_output), 3) - expected_name = __name__ + '.test_decorator' current_entry = log_output.pop(0) self.assertEquals(current_entry['category'], 'process_argv') self.assertEquals(current_entry['name'], 'process_argv') @@ -195,12 +194,12 @@ self.assertEquals(current_entry['ph'], 'M') current_entry = log_output.pop(0) self.assertEquals(current_entry['category'], 'python') - self.assertEquals(current_entry['name'], expected_name) + self.assertEquals(current_entry['name'], '__main__.test_decorator') self.assertEquals(current_entry['args']['this'], '\'that\'') self.assertEquals(current_entry['ph'], 'B') current_entry = log_output.pop(0) self.assertEquals(current_entry['category'], 'python') - self.assertEquals(current_entry['name'], expected_name) + self.assertEquals(current_entry['name'], '__main__.test_decorator') self.assertEquals(current_entry['args'], {}) self.assertEquals(current_entry['ph'], 'E') @@ -350,8 +349,7 @@ self.assertLessEqual(one_open['ts'], two_open['ts']) self.assertLessEqual(one_close['ts'], two_close['ts']) - # TODO(khokhlov): Fix this test on Windows. See crbug.com/945819 for details. - def disabled_testMultiprocess(self): + def testMultiprocess(self): def child_function(): with trace_event.trace('child_event'): pass @@ -394,21 +392,6 @@ self.assertEquals(parent_close['name'], 'parent_event') self.assertEquals(parent_close['ph'], 'E') - @unittest.skipIf(sys.platform == 'win32', 'crbug.com/945819') - def testTracingControlDisabledInChildButNotInParent(self): - def child(resp): - # test tracing is not controllable in the child - resp.put(trace_event.is_tracing_controllable()) - - with self._test_trace(): - q = multiprocessing.Queue() - p = multiprocessing.Process(target=child, args=[q]) - p.start() - # test tracing is controllable in the parent - self.assertTrue(trace_event.is_tracing_controllable()) - self.assertFalse(q.get()) - p.join() - def testMultiprocessExceptionInChild(self): def bad_child(): trace_event.trace_disable() @@ -435,84 +418,6 @@ self.assertEquals(parent_close['name'], 'parent') self.assertEquals(parent_close['ph'], 'E') - def testFormatJson(self): - with self._test_trace(format=trace_event.JSON): - trace_event.trace_flush() - with open(self._log_path, 'r') as f: - log_output = json.loads(f.read() + ']') - self.assertEquals(len(log_output), 1) - self.assertEquals(log_output[0]['ph'], 'M') - - def testFormatJsonWithMetadata(self): - with self._test_trace(format=trace_event.JSON_WITH_METADATA): - trace_event.trace_disable() - with open(self._log_path, 'r') as f: - log_output = json.load(f) - self.assertEquals(len(log_output), 2) - events = log_output['traceEvents'] - self.assertEquals(len(events), 1) - self.assertEquals(events[0]['ph'], 'M') - - def testFormatProtobuf(self): - with self._test_trace(format=trace_event.PROTOBUF): - trace_event.trace_flush() - with open(self._log_path, 'r') as f: - self.assertGreater(len(f.read()), 0) - - def testAddMetadata(self): - with self._test_trace(format=trace_event.JSON_WITH_METADATA): - trace_event.trace_add_benchmark_metadata( - benchmark_start_time_us=1000, - story_run_time_us=2000, - benchmark_name='benchmark', - benchmark_description='desc', - story_name='story', - story_tags=['tag1', 'tag2'], - story_run_index=0, - ) - trace_event.trace_disable() - with open(self._log_path, 'r') as f: - log_output = json.load(f) - self.assertEquals(len(log_output), 2) - telemetry_metadata = log_output['metadata']['telemetry'] - self.assertEquals(len(telemetry_metadata), 7) - self.assertEquals(telemetry_metadata['benchmarkStart'], 1) - self.assertEquals(telemetry_metadata['traceStart'], 2) - self.assertEquals(telemetry_metadata['benchmarks'], ['benchmark']) - self.assertEquals(telemetry_metadata['benchmarkDescriptions'], ['desc']) - self.assertEquals(telemetry_metadata['stories'], ['story']) - self.assertEquals(telemetry_metadata['storyTags'], ['tag1', 'tag2']) - self.assertEquals(telemetry_metadata['storysetRepeats'], [0]) - - def testAddMetadataProtobuf(self): - with self._test_trace(format=trace_event.PROTOBUF): - trace_event.trace_add_benchmark_metadata( - benchmark_start_time_us=1000, - story_run_time_us=2000, - benchmark_name='benchmark', - benchmark_description='desc', - story_name='story', - story_tags=['tag1', 'tag2'], - story_run_index=0, - ) - trace_event.trace_disable() - with open(self._log_path, 'r') as f: - self.assertGreater(len(f.read()), 0) - - def testAddMetadataInJsonFormatRaises(self): - with self._test_trace(format=trace_event.JSON): - with self.assertRaises(log.TraceException): - trace_event.trace_add_benchmark_metadata( - benchmark_start_time_us=1000, - story_run_time_us=2000, - benchmark_name='benchmark', - benchmark_description='description', - story_name='story', - story_tags=['tag1', 'tag2'], - story_run_index=0, - ) - - if __name__ == '__main__': logging.getLogger().setLevel(logging.DEBUG) unittest.main(verbosity=2)
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_time_unittest.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_time_unittest.py index bae7ea8..ab54bd6 100644 --- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_time_unittest.py +++ b/systrace/catapult/common/py_trace_event/py_trace_event/trace_time_unittest.py
@@ -86,7 +86,7 @@ # Test requires QPC to be available on platform. if not trace_time.IsQPCUsable(): return True - self.assertGreater(trace_time.Now(), 0) + self.assertGreater(trace_time.monotonic(), 0) # Works even if QPC would work. def testGetWinNowFunction_GetTickCount(self): @@ -94,7 +94,7 @@ or sys.platform.startswith(trace_time._PLATFORMS['cygwin'])): return True with self.ReplaceQPCCheck(lambda: False): - self.assertGreater(trace_time.Now(), 0) + self.assertGreater(trace_time.monotonic(), 0) # Linux tests. def testGetClockGetTimeClockNumber_linux(self):
diff --git a/systrace/catapult/common/py_trace_event/third_party/protobuf/README.chromium b/systrace/catapult/common/py_trace_event/third_party/protobuf/README.chromium deleted file mode 100644 index f22d684..0000000 --- a/systrace/catapult/common/py_trace_event/third_party/protobuf/README.chromium +++ /dev/null
@@ -1,12 +0,0 @@ -Name: Protobuf -URL: https://developers.google.com/protocol-buffers/ -Version: 3.0.0 -License: BSD - -Description: -Protocol buffers are Google's language-neutral, platform-neutral, -extensible mechanism for serializing structured data. - -Local Modifications: -Removed pretty much everything except functions necessary to write -bools, ints, and strings.
diff --git a/systrace/catapult/common/py_trace_event/third_party/protobuf/encoder.py b/systrace/catapult/common/py_trace_event/third_party/protobuf/encoder.py deleted file mode 100644 index 18aaccd..0000000 --- a/systrace/catapult/common/py_trace_event/third_party/protobuf/encoder.py +++ /dev/null
@@ -1,224 +0,0 @@ -# Protocol Buffers - Google's data interchange format -# Copyright 2008 Google Inc. All rights reserved. -# https://developers.google.com/protocol-buffers/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import six - -import wire_format - - -def _VarintSize(value): - """Compute the size of a varint value.""" - if value <= 0x7f: return 1 - if value <= 0x3fff: return 2 - if value <= 0x1fffff: return 3 - if value <= 0xfffffff: return 4 - if value <= 0x7ffffffff: return 5 - if value <= 0x3ffffffffff: return 6 - if value <= 0x1ffffffffffff: return 7 - if value <= 0xffffffffffffff: return 8 - if value <= 0x7fffffffffffffff: return 9 - return 10 - - -def _SignedVarintSize(value): - """Compute the size of a signed varint value.""" - if value < 0: return 10 - if value <= 0x7f: return 1 - if value <= 0x3fff: return 2 - if value <= 0x1fffff: return 3 - if value <= 0xfffffff: return 4 - if value <= 0x7ffffffff: return 5 - if value <= 0x3ffffffffff: return 6 - if value <= 0x1ffffffffffff: return 7 - if value <= 0xffffffffffffff: return 8 - if value <= 0x7fffffffffffffff: return 9 - return 10 - - -def _VarintEncoder(): - """Return an encoder for a basic varint value (does not include tag).""" - - def EncodeVarint(write, value): - bits = value & 0x7f - value >>= 7 - while value: - write(six.int2byte(0x80|bits)) - bits = value & 0x7f - value >>= 7 - return write(six.int2byte(bits)) - - return EncodeVarint - - -def _SignedVarintEncoder(): - """Return an encoder for a basic signed varint value (does not include - tag).""" - - def EncodeSignedVarint(write, value): - if value < 0: - value += (1 << 64) - bits = value & 0x7f - value >>= 7 - while value: - write(six.int2byte(0x80|bits)) - bits = value & 0x7f - value >>= 7 - return write(six.int2byte(bits)) - - return EncodeSignedVarint - - -_EncodeVarint = _VarintEncoder() -_EncodeSignedVarint = _SignedVarintEncoder() - - -def _VarintBytes(value): - """Encode the given integer as a varint and return the bytes. This is only - called at startup time so it doesn't need to be fast.""" - - pieces = [] - _EncodeVarint(pieces.append, value) - return b"".join(pieces) - - -def TagBytes(field_number, wire_type): - """Encode the given tag and return the bytes. Only called at startup.""" - - return _VarintBytes(wire_format.PackTag(field_number, wire_type)) - - -def _SimpleEncoder(wire_type, encode_value, compute_value_size): - """Return a constructor for an encoder for fields of a particular type. - - Args: - wire_type: The field's wire type, for encoding tags. - encode_value: A function which encodes an individual value, e.g. - _EncodeVarint(). - compute_value_size: A function which computes the size of an individual - value, e.g. _VarintSize(). - """ - - def SpecificEncoder(field_number, is_repeated, is_packed): - if is_packed: - tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED) - local_EncodeVarint = _EncodeVarint - def EncodePackedField(write, value): - write(tag_bytes) - size = 0 - for element in value: - size += compute_value_size(element) - local_EncodeVarint(write, size) - for element in value: - encode_value(write, element) - return EncodePackedField - elif is_repeated: - tag_bytes = TagBytes(field_number, wire_type) - def EncodeRepeatedField(write, value): - for element in value: - write(tag_bytes) - encode_value(write, element) - return EncodeRepeatedField - else: - tag_bytes = TagBytes(field_number, wire_type) - def EncodeField(write, value): - write(tag_bytes) - return encode_value(write, value) - return EncodeField - - return SpecificEncoder - - -Int32Encoder = Int64Encoder = EnumEncoder = _SimpleEncoder( - wire_format.WIRETYPE_VARINT, _EncodeSignedVarint, _SignedVarintSize) - -UInt32Encoder = UInt64Encoder = _SimpleEncoder( - wire_format.WIRETYPE_VARINT, _EncodeVarint, _VarintSize) - - -def BoolEncoder(field_number, is_repeated, is_packed): - """Returns an encoder for a boolean field.""" - - false_byte = b'\x00' - true_byte = b'\x01' - if is_packed: - tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED) - local_EncodeVarint = _EncodeVarint - def EncodePackedField(write, value): - write(tag_bytes) - local_EncodeVarint(write, len(value)) - for element in value: - if element: - write(true_byte) - else: - write(false_byte) - return EncodePackedField - elif is_repeated: - tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_VARINT) - def EncodeRepeatedField(write, value): - for element in value: - write(tag_bytes) - if element: - write(true_byte) - else: - write(false_byte) - return EncodeRepeatedField - else: - tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_VARINT) - def EncodeField(write, value): - write(tag_bytes) - if value: - return write(true_byte) - return write(false_byte) - return EncodeField - - -def StringEncoder(field_number, is_repeated, is_packed): - """Returns an encoder for a string field.""" - - tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED) - local_EncodeVarint = _EncodeVarint - local_len = len - assert not is_packed - if is_repeated: - def EncodeRepeatedField(write, value): - for element in value: - encoded = element.encode('utf-8') - write(tag) - local_EncodeVarint(write, local_len(encoded)) - write(encoded) - return EncodeRepeatedField - else: - def EncodeField(write, value): - encoded = value.encode('utf-8') - write(tag) - local_EncodeVarint(write, local_len(encoded)) - return write(encoded) - return EncodeField -
diff --git a/systrace/catapult/common/py_trace_event/third_party/protobuf/wire_format.py b/systrace/catapult/common/py_trace_event/third_party/protobuf/wire_format.py deleted file mode 100644 index 9341e6f..0000000 --- a/systrace/catapult/common/py_trace_event/third_party/protobuf/wire_format.py +++ /dev/null
@@ -1,52 +0,0 @@ -# Protocol Buffers - Google's data interchange format -# Copyright 2008 Google Inc. All rights reserved. -# https://developers.google.com/protocol-buffers/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -TAG_TYPE_BITS = 3 # Number of bits used to hold type info in a proto tag. - -WIRETYPE_VARINT = 0 -WIRETYPE_FIXED64 = 1 -WIRETYPE_LENGTH_DELIMITED = 2 -WIRETYPE_START_GROUP = 3 -WIRETYPE_END_GROUP = 4 -WIRETYPE_FIXED32 = 5 -_WIRETYPE_MAX = 5 - -def PackTag(field_number, wire_type): - """Returns an unsigned 32-bit integer that encodes the field number and - wire type information in standard protocol message wire format. - - Args: - field_number: Expected to be an integer in the range [1, 1 << 29) - wire_type: One of the WIRETYPE_* constants. - """ - if not 0 <= wire_type <= _WIRETYPE_MAX: - raise RuntimeError('Unknown wire type: %d' % wire_type) - return (field_number << TAG_TYPE_BITS) | wire_type -
diff --git a/systrace/catapult/common/py_utils/bin/run_tests b/systrace/catapult/common/py_utils/bin/run_tests deleted file mode 100755 index 66a4b59..0000000 --- a/systrace/catapult/common/py_utils/bin/run_tests +++ /dev/null
@@ -1,38 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2015 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import os -import sys - -_CATAPULT_PATH = os.path.abspath( - os.path.join(os.path.dirname(__file__), '..', '..', '..')) - -_PY_UTILS_PATH = os.path.abspath( - os.path.join(_CATAPULT_PATH, 'common', 'py_utils')) - - -def _RunTestsOrDie(top_level_dir): - exit_code = run_with_typ.Run(top_level_dir, path=[_PY_UTILS_PATH]) - if exit_code: - sys.exit(exit_code) - - -def _AddToPathIfNeeded(path): - if path not in sys.path: - sys.path.insert(0, path) - - -if __name__ == '__main__': - _AddToPathIfNeeded(_CATAPULT_PATH) - - from hooks import install - if '--no-install-hooks' in sys.argv: - sys.argv.remove('--no-install-hooks') - else: - install.InstallHooks() - - from catapult_build import run_with_typ - _RunTestsOrDie(_PY_UTILS_PATH) - sys.exit(0)
diff --git a/systrace/catapult/common/py_utils/py_utils/__init__.py b/systrace/catapult/common/py_utils/py_utils/__init__.py index 0d7b052..fba0897 100644 --- a/systrace/catapult/common/py_utils/py_utils/__init__.py +++ b/systrace/catapult/common/py_utils/py_utils/__init__.py
@@ -4,8 +4,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import print_function - import functools import inspect import os @@ -76,8 +74,8 @@ _AddDirToPythonPath( os.path.join(GetCatapultDir(), 'third_party', 'pyfakefs')) -from devil.utils import timeout_retry # pylint: disable=wrong-import-position -from devil.utils import reraiser_thread # pylint: disable=wrong-import-position +from devil.utils import timeout_retry +from devil.utils import reraiser_thread # Decorator that adds timeout functionality to a function. @@ -102,7 +100,7 @@ try: return timeout_retry.Run(func, timeout, 0, args=args) except reraiser_thread.TimeoutError: - print('%s timed out.' % func.__name__) + print '%s timed out.' % func.__name__ return False return RunWithTimeout
diff --git a/systrace/catapult/common/py_utils/py_utils/binary_manager.py b/systrace/catapult/common/py_utils/py_utils/binary_manager.py index 2d3ac8a..8af08cf 100644 --- a/systrace/catapult/common/py_utils/py_utils/binary_manager.py +++ b/systrace/catapult/common/py_utils/py_utils/binary_manager.py
@@ -13,7 +13,7 @@ """ def __init__(self, config_files): - if not config_files or not isinstance(config_files, list): + if not config_files or type(config_files) != list: raise ValueError( 'Must supply a list of config files to the BinaryManager') configs = [dependency_manager.BaseConfig(config) for config in config_files]
diff --git a/systrace/catapult/common/py_utils/py_utils/camel_case.py b/systrace/catapult/common/py_utils/py_utils/camel_case.py index dbebb22..9a76890 100644 --- a/systrace/catapult/common/py_utils/py_utils/camel_case.py +++ b/systrace/catapult/common/py_utils/py_utils/camel_case.py
@@ -2,11 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function import re -import six def ToUnderscore(obj): @@ -15,7 +11,7 @@ Descends recursively into lists and dicts, converting all dict keys. Returns a newly allocated object of the same structure as the input. """ - if isinstance(obj, six.string_types): + if isinstance(obj, basestring): return re.sub('(?!^)([A-Z]+)', r'_\1', obj).lower() elif isinstance(obj, list): @@ -23,7 +19,7 @@ elif isinstance(obj, dict): output = {} - for k, v in six.iteritems(obj): + for k, v in obj.iteritems(): if isinstance(v, list) or isinstance(v, dict): output[ToUnderscore(k)] = ToUnderscore(v) else:
diff --git a/systrace/catapult/common/py_utils/py_utils/chrome_binaries.json b/systrace/catapult/common/py_utils/py_utils/chrome_binaries.json index 437cbb3..ce357c7 100644 --- a/systrace/catapult/common/py_utils/py_utils/chrome_binaries.json +++ b/systrace/catapult/common/py_utils/py_utils/chrome_binaries.json
@@ -6,22 +6,22 @@ "cloud_storage_bucket": "chrome-telemetry", "file_info": { "mac_x86_64": { - "cloud_storage_hash": "381a491e14ab523b8db4cdf3c993713678237af8", + "cloud_storage_hash": "b321a01b2c98fe62b1876655b10436c2226b1b76", "download_path": "bin/reference_builds/chrome-mac64.zip", "path_within_archive": "chrome-mac/Google Chrome.app/Contents/MacOS/Google Chrome", - "version_in_cs": "77.0.3822.0" + "version_in_cs": "62.0.3194.0" }, "win_AMD64": { - "cloud_storage_hash": "600ee522c410efe1de2f593c0efc32ae113a7d99", - "download_path": "bin\\reference_build\\chrome-win64-clang.zip", - "path_within_archive": "chrome-win64-clang\\chrome.exe", - "version_in_cs": "77.0.3822.0" + "cloud_storage_hash": "2da1c7861745ab0e8f666f119eeb58c1410710cc", + "download_path": "bin\\reference_build\\chrome-win64-pgo.zip", + "path_within_archive": "chrome-win64-pgo\\chrome.exe", + "version_in_cs": "62.0.3194.0" }, "win_x86": { - "cloud_storage_hash": "5b79a181bfbd94d8288529b0da1defa3ef097197", - "download_path": "bin\\reference_build\\chrome-win32-clang.zip", - "path_within_archive": "chrome-win32-clang\\chrome.exe", - "version_in_cs": "77.0.3822.0" + "cloud_storage_hash": "270abd11621386be612af02b707844cba06c0dbd", + "download_path": "bin\\reference_build\\chrome-win32-pgo.zip", + "path_within_archive": "chrome-win32-pgo\\chrome.exe", + "version_in_cs": "62.0.3194.0" } } }, @@ -30,10 +30,10 @@ "cloud_storage_bucket": "chrome-telemetry", "file_info": { "linux_x86_64": { - "cloud_storage_hash": "61d68a6b00f25c964f5162f5251962468c886f3a", + "cloud_storage_hash": "2592ec6f8dd56227c3c281e3cccecd6c9ba72cad", "download_path": "bin/reference_build/chrome-linux64.zip", "path_within_archive": "chrome-linux64/chrome", - "version_in_cs": "76.0.3809.21" + "version_in_cs": "62.0.3192.0" } } }, @@ -42,85 +42,45 @@ "cloud_storage_bucket": "chrome-telemetry", "file_info": { "android_k_armeabi-v7a": { - "cloud_storage_hash": "28b913c720d56a30c092625c7862f00175a316c7", + "cloud_storage_hash": "948c776335d3a38d6e8de0dba576e109c6b5724c", "download_path": "bin/reference_build/android_k_armeabi-v7a/ChromeStable.apk", - "version_in_cs": "75.0.3770.67" + "version_in_cs": "63.0.3239.111" }, "android_l_arm64-v8a": { - "cloud_storage_hash": "4b953c33c61f94c2198e8001d0d8142c6504a875", + "cloud_storage_hash": "a25663aad7397002f6dfe44fb97087fdd77df119", "download_path": "bin/reference_build/android_l_arm64-v8a/ChromeStable.apk", - "version_in_cs": "75.0.3770.67" + "version_in_cs": "63.0.3239.111" }, "android_l_armeabi-v7a": { - "cloud_storage_hash": "28b913c720d56a30c092625c7862f00175a316c7", + "cloud_storage_hash": "948c776335d3a38d6e8de0dba576e109c6b5724c", "download_path": "bin/reference_build/android_l_armeabi-v7a/ChromeStable.apk", - "version_in_cs": "75.0.3770.67" - }, - "android_n_arm64-v8a": { - "cloud_storage_hash": "84152ba8f7a25cacc79d588ed827ea75f0e4ab94", - "download_path": "bin/reference_build/android_n_arm64-v8a/Monochrome.apk", - "version_in_cs": "75.0.3770.67" - }, - "android_n_armeabi-v7a": { - "cloud_storage_hash": "656bb9e3982d0d35decd5347ced2c320a7267f33", - "download_path": "bin/reference_build/android_n_armeabi-v7a/Monochrome.apk", - "version_in_cs": "75.0.3770.67" + "version_in_cs": "63.0.3239.111" }, "linux_x86_64": { - "cloud_storage_hash": "dee8469e8dcd8453efd33f3a00d7ea302a126a4b", + "cloud_storage_hash": "b0506e43d268eadb887ccc847695674f9d2e51a5", "download_path": "bin/reference_build/chrome-linux64.zip", "path_within_archive": "chrome-linux64/chrome", - "version_in_cs": "75.0.3770.80" + "version_in_cs": "63.0.3239.108" }, "mac_x86_64": { - "cloud_storage_hash": "16a43a1e794bb99ec1ebcd40569084985b3c6626", + "cloud_storage_hash": "56a3de45b37b7eb563006c30a548a48928cffb39", "download_path": "bin/reference_builds/chrome-mac64.zip", "path_within_archive": "chrome-mac/Google Chrome.app/Contents/MacOS/Google Chrome", - "version_in_cs": "75.0.3770.80" + "version_in_cs": "63.0.3239.108" }, "win_AMD64": { - "cloud_storage_hash": "1ec52bd4164f2d93c53113a093dae9e041eb2d73", - "download_path": "bin\\reference_build\\chrome-win64-clang.zip", - "path_within_archive": "chrome-win64-clang\\chrome.exe", - "version_in_cs": "75.0.3770.80" + "cloud_storage_hash": "d1511334055c88fd9fa5e6e63fee666d9be8c433", + "download_path": "bin\\reference_build\\chrome-win64.zip", + "path_within_archive": "chrome-win64\\chrome.exe", + "version_in_cs": "63.0.3239.108" }, "win_x86": { - "cloud_storage_hash": "0f9eb991ba618dc61f2063ea252f44be94c2252e", - "download_path": "bin\\reference_build\\chrome-win-clang.zip", - "path_within_archive": "chrome-win-clang\\chrome.exe", - "version_in_cs": "75.0.3770.80" - } - } - }, - "chrome_m72": { - "cloud_storage_base_folder": "binary_dependencies", - "cloud_storage_bucket": "chrome-telemetry", - "file_info": { - "linux_x86_64": { - "cloud_storage_hash": "537c19346b20340cc6807242e1eb6d82dfcfa2e8", - "download_path": "bin/reference_build/chrome-linux64.zip", - "path_within_archive": "chrome-linux64/chrome", - "version_in_cs": "72.0.3626.119" - }, - "mac_x86_64": { - "cloud_storage_hash": "7f6a931f696f57561703538c6f799781d6e22e7e", - "download_path": "bin/reference_builds/chrome-mac64.zip", - "path_within_archive": "chrome-mac/Google Chrome.app/Contents/MacOS/Google Chrome", - "version_in_cs": "72.0.3626.119" - }, - "win_AMD64": { - "cloud_storage_hash": "563d7985c85bfe77e92b8253d0389ff8551018c7", - "download_path": "bin\\reference_build\\chrome-win64-clang.zip", - "path_within_archive": "chrome-win64-clang\\chrome.exe", - "version_in_cs": "72.0.3626.119" - }, - "win_x86": { - "cloud_storage_hash": "1802179da16e44b83bd3f0b296f9e5b0b053d59c", - "download_path": "bin\\reference_build\\chrome-win-clang.zip", - "path_within_archive": "chrome-win-clang\\chrome.exe", - "version_in_cs": "72.0.3626.119" + "cloud_storage_hash": "9e869b3b25ee7b682712cde6eaddc2d7fa84cc90", + "download_path": "bin\\reference_build\\chrome-win32.zip", + "path_within_archive": "chrome-win32\\chrome.exe", + "version_in_cs": "63.0.3239.108" } } } } -} \ No newline at end of file +}
diff --git a/systrace/catapult/common/py_utils/py_utils/cloud_storage.py b/systrace/catapult/common/py_utils/py_utils/cloud_storage.py index b4988c5..f601380 100644 --- a/systrace/catapult/common/py_utils/py_utils/cloud_storage.py +++ b/systrace/catapult/common/py_utils/py_utils/cloud_storage.py
@@ -9,21 +9,21 @@ import hashlib import logging import os -import re import shutil import stat import subprocess +import re import sys import tempfile import time import py_utils -from py_utils import cloud_storage_global_lock # pylint: disable=unused-import from py_utils import lock # Do a no-op import here so that cloud_storage_global_lock dep is picked up # by https://cs.chromium.org/chromium/src/build/android/test_runner.pydeps. # TODO(nedn, jbudorick): figure out a way to get rid of this ugly hack. +from py_utils import cloud_storage_global_lock # pylint: disable=unused-import logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -42,7 +42,7 @@ ('output', TELEMETRY_OUTPUT), )) -BUCKET_ALIAS_NAMES = list(BUCKET_ALIASES.keys()) +BUCKET_ALIAS_NAMES = BUCKET_ALIASES.keys() _GSUTIL_PATH = os.path.join(py_utils.GetCatapultDir(), 'third_party', 'gsutil', @@ -120,9 +120,6 @@ os.chmod(gsutil, st.st_mode | stat.S_IEXEC) -def _IsRunningOnSwarming(): - return os.environ.get('SWARMING_HEADLESS') is not None - def _RunCommand(args): # On cros device, as telemetry is running as root, home will be set to /root/, # which is not writable. gsutil will attempt to create a download tracker dir @@ -135,8 +132,6 @@ if py_utils.IsRunningOnCrosDevice(): gsutil_env = os.environ.copy() gsutil_env['HOME'] = _CROS_GSUTIL_HOME_WAR - elif _IsRunningOnSwarming(): - gsutil_env = os.environ.copy() if os.name == 'nt': # If Windows, prepend python. Python scripts aren't directly executable.
diff --git a/systrace/catapult/common/py_utils/py_utils/cloud_storage_unittest.py b/systrace/catapult/common/py_utils/py_utils/cloud_storage_unittest.py index 7648db6..ae2f748 100644 --- a/systrace/catapult/common/py_utils/py_utils/cloud_storage_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/cloud_storage_unittest.py
@@ -154,19 +154,6 @@ finally: cloud_storage._RunCommand = orig_run_command - @mock.patch('py_utils.cloud_storage.subprocess.Popen') - def testSwarmingUsesExistingEnv(self, mock_popen): - os.environ['SWARMING_HEADLESS'] = '1' - - mock_gsutil = mock_popen() - mock_gsutil.communicate = mock.MagicMock(return_value=('a', 'b')) - mock_gsutil.returncode = None - - cloud_storage.Copy('bucket1', 'bucket2', 'remote_path1', 'remote_path2') - - mock_popen.assert_called_with( - mock.ANY, stderr=-1, env=os.environ, stdout=-1) - @mock.patch('py_utils.cloud_storage._FileLock') def testDisableCloudStorageIo(self, unused_lock_mock): os.environ['DISABLE_CLOUD_STORAGE_IO'] = '1'
diff --git a/systrace/catapult/common/py_utils/py_utils/discover.py b/systrace/catapult/common/py_utils/py_utils/discover.py index ae8ba87..09d5c5e 100644 --- a/systrace/catapult/common/py_utils/py_utils/discover.py +++ b/systrace/catapult/common/py_utils/py_utils/discover.py
@@ -107,7 +107,7 @@ # crbug.com/548652 if index_by_class_name: AssertNoKeyConflicts(classes, new_classes) - classes = dict(list(classes.items()) + list(new_classes.items())) + classes = dict(classes.items() + new_classes.items()) return classes
diff --git a/systrace/catapult/common/py_utils/py_utils/discover_unittest.py b/systrace/catapult/common/py_utils/py_utils/discover_unittest.py index 2d4fd27..137d85f 100644 --- a/systrace/catapult/common/py_utils/py_utils/discover_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/discover_unittest.py
@@ -1,15 +1,10 @@ # Copyright 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import os import unittest from py_utils import discover -import six class DiscoverTest(unittest.TestCase): @@ -25,8 +20,8 @@ self._base_class, index_by_class_name=False) - actual_classes = dict( - (name, cls.__name__) for name, cls in six.iteritems(classes)) + actual_classes = dict((name, cls.__name__) + for name, cls in classes.iteritems()) expected_classes = { 'another_discover_dummyclass': 'DummyExceptionWithParameterImpl1', 'discover_dummyclass': 'DummyException', @@ -40,8 +35,8 @@ self._base_class, directly_constructable=True) - actual_classes = dict( - (name, cls.__name__) for name, cls in six.iteritems(classes)) + actual_classes = dict((name, cls.__name__) + for name, cls in classes.iteritems()) expected_classes = { 'dummy_exception': 'DummyException', 'dummy_exception_impl1': 'DummyExceptionImpl1', @@ -53,8 +48,8 @@ classes = discover.DiscoverClasses(self._start_dir, self._base_dir, self._base_class) - actual_classes = dict( - (name, cls.__name__) for name, cls in six.iteritems(classes)) + actual_classes = dict((name, cls.__name__) + for name, cls in classes.iteritems()) expected_classes = { 'dummy_exception': 'DummyException', 'dummy_exception_impl1': 'DummyExceptionImpl1', @@ -73,8 +68,8 @@ pattern='another*', index_by_class_name=False) - actual_classes = dict( - (name, cls.__name__) for name, cls in six.iteritems(classes)) + actual_classes = dict((name, cls.__name__) + for name, cls in classes.iteritems()) expected_classes = { 'another_discover_dummyclass': 'DummyExceptionWithParameterImpl1' } @@ -88,8 +83,8 @@ pattern='another*', directly_constructable=True) - actual_classes = dict( - (name, cls.__name__) for name, cls in six.iteritems(classes)) + actual_classes = dict((name, cls.__name__) + for name, cls in classes.iteritems()) expected_classes = { 'dummy_exception_impl1': 'DummyExceptionImpl1', 'dummy_exception_impl2': 'DummyExceptionImpl2', @@ -102,8 +97,8 @@ self._base_class, pattern='another*') - actual_classes = dict( - (name, cls.__name__) for name, cls in six.iteritems(classes)) + actual_classes = dict((name, cls.__name__) + for name, cls in classes.iteritems()) expected_classes = { 'dummy_exception_impl1': 'DummyExceptionImpl1', 'dummy_exception_impl2': 'DummyExceptionImpl2',
diff --git a/systrace/catapult/common/py_utils/py_utils/exc_util.py b/systrace/catapult/common/py_utils/py_utils/exc_util.py deleted file mode 100644 index 538ced2..0000000 --- a/systrace/catapult/common/py_utils/py_utils/exc_util.py +++ /dev/null
@@ -1,84 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import functools -import logging -import sys - - -def BestEffort(func): - """Decorator to log and dismiss exceptions if one if already being handled. - - Note: This is largely a workaround for the lack of support of exception - chaining in Python 2.7, this decorator will no longer be needed in Python 3. - - Typical usage would be in |Close| or |Disconnect| methods, to dismiss but log - any further exceptions raised if the current execution context is already - handling an exception. For example: - - class Client(object): - def Connect(self): - # code to connect ... - - @exc_util.BestEffort - def Disconnect(self): - # code to disconnect ... - - client = Client() - try: - client.Connect() - except: - client.Disconnect() - raise - - If an exception is raised by client.Connect(), and then a second exception - is raised by client.Disconnect(), the decorator will log the second exception - and let the original one be re-raised. - - Otherwise, in Python 2.7 and without the decorator, the second exception is - the one propagated to the caller; while information about the original one, - usually more important, is completely lost. - - Note that if client.Disconnect() is called in a context where an exception - is *not* being handled, then any exceptions raised within the method will - get through and be passed on to callers for them to handle in the usual way. - - The decorator can also be used on cleanup functions meant to be called on - a finally block, however you must also include an except-raise clause to - properly signal (in Python 2.7) whether an exception is being handled; e.g.: - - @exc_util.BestEffort - def cleanup(): - # do cleanup things ... - - try: - process(thing) - except: - raise # Needed to let cleanup know if an exception is being handled. - finally: - cleanup() - - Failing to include the except-raise block has the same effect as not - including the decorator at all. Namely: exceptions during |cleanup| are - raised and swallow any prior exceptions that occurred during |process|. - """ - @functools.wraps(func) - def Wrapper(*args, **kwargs): - exc_type = sys.exc_info()[0] - if exc_type is None: - # Not currently handling an exception; let any errors raise exceptions - # as usual. - func(*args, **kwargs) - else: - # Otherwise, we are currently handling an exception, dismiss and log - # any further cascading errors. Callers are responsible to handle the - # original exception. - try: - func(*args, **kwargs) - except Exception: # pylint: disable=broad-except - logging.exception( - 'While handling a %s, the following exception was also raised:', - exc_type.__name__) - - return Wrapper
diff --git a/systrace/catapult/common/py_utils/py_utils/exc_util_unittest.py b/systrace/catapult/common/py_utils/py_utils/exc_util_unittest.py deleted file mode 100644 index 31e3b57..0000000 --- a/systrace/catapult/common/py_utils/py_utils/exc_util_unittest.py +++ /dev/null
@@ -1,183 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import re -import sys -import unittest - -from py_utils import exc_util - - -class FakeConnectionError(Exception): - pass - - -class FakeDisconnectionError(Exception): - pass - - -class FakeProcessingError(Exception): - pass - - -class FakeCleanupError(Exception): - pass - - -class FaultyClient(object): - def __init__(self, *args): - self.failures = set(args) - self.called = set() - - def Connect(self): - self.called.add('Connect') - if FakeConnectionError in self.failures: - raise FakeConnectionError('Oops!') - - def Process(self): - self.called.add('Process') - if FakeProcessingError in self.failures: - raise FakeProcessingError('Oops!') - - @exc_util.BestEffort - def Disconnect(self): - self.called.add('Disconnect') - if FakeDisconnectionError in self.failures: - raise FakeDisconnectionError('Oops!') - - @exc_util.BestEffort - def Cleanup(self): - self.called.add('Cleanup') - if FakeCleanupError in self.failures: - raise FakeCleanupError('Oops!') - - -class ReraiseTests(unittest.TestCase): - def assertLogMatches(self, pattern): - self.assertRegexpMatches( - sys.stderr.getvalue(), pattern) # pylint: disable=no-member - - def assertLogNotMatches(self, pattern): - self.assertNotRegexpMatches( - sys.stderr.getvalue(), pattern) # pylint: disable=no-member - - def testTryRaisesExceptRaises(self): - client = FaultyClient(FakeConnectionError, FakeDisconnectionError) - - # The connection error reaches the top level, while the disconnection - # error is logged. - with self.assertRaises(FakeConnectionError): - try: - client.Connect() - except: - client.Disconnect() - raise - - self.assertLogMatches(re.compile( - r'While handling a FakeConnectionError, .* was also raised:\n' - r'Traceback \(most recent call last\):\n' - r'.*\n' - r'FakeDisconnectionError: Oops!\n', re.DOTALL)) - self.assertItemsEqual(client.called, ['Connect', 'Disconnect']) - - def testTryRaisesExceptDoesnt(self): - client = FaultyClient(FakeConnectionError) - - # The connection error reaches the top level, disconnecting did not raise - # an exception (so nothing is logged). - with self.assertRaises(FakeConnectionError): - try: - client.Connect() - except: - client.Disconnect() - raise - - self.assertLogNotMatches('FakeDisconnectionError') - self.assertItemsEqual(client.called, ['Connect', 'Disconnect']) - - def testTryPassesNoException(self): - client = FaultyClient(FakeDisconnectionError) - - # If there is no connection error, the except clause is not called (even if - # it would have raised an exception). - try: - client.Connect() - except: - client.Disconnect() - raise - - self.assertLogNotMatches('FakeConnectionError') - self.assertLogNotMatches('FakeDisconnectionError') - self.assertItemsEqual(client.called, ['Connect']) - - def testTryRaisesFinallyRaises(self): - worker = FaultyClient(FakeProcessingError, FakeCleanupError) - - # The processing error reaches the top level, the cleanup error is logged. - with self.assertRaises(FakeProcessingError): - try: - worker.Process() - except: - raise # Needed for Cleanup to know if an exception is handled. - finally: - worker.Cleanup() - - self.assertLogMatches(re.compile( - r'While handling a FakeProcessingError, .* was also raised:\n' - r'Traceback \(most recent call last\):\n' - r'.*\n' - r'FakeCleanupError: Oops!\n', re.DOTALL)) - self.assertItemsEqual(worker.called, ['Process', 'Cleanup']) - - def testTryRaisesFinallyDoesnt(self): - worker = FaultyClient(FakeProcessingError) - - # The processing error reaches the top level, the cleanup code runs fine. - with self.assertRaises(FakeProcessingError): - try: - worker.Process() - except: - raise # Needed for Cleanup to know if an exception is handled. - finally: - worker.Cleanup() - - self.assertLogNotMatches('FakeProcessingError') - self.assertLogNotMatches('FakeCleanupError') - self.assertItemsEqual(worker.called, ['Process', 'Cleanup']) - - def testTryPassesFinallyRaises(self): - worker = FaultyClient(FakeCleanupError) - - # The processing code runs fine, the cleanup code raises an exception - # which reaches the top level. - with self.assertRaises(FakeCleanupError): - try: - worker.Process() - except: - raise # Needed for Cleanup to know if an exception is handled. - finally: - worker.Cleanup() - - self.assertLogNotMatches('FakeProcessingError') - self.assertLogNotMatches('FakeCleanupError') - self.assertItemsEqual(worker.called, ['Process', 'Cleanup']) - - def testTryRaisesExceptRaisesFinallyRaises(self): - worker = FaultyClient( - FakeProcessingError, FakeDisconnectionError, FakeCleanupError) - - # Chaining try-except-finally works fine. Only the processing error reaches - # the top level; the other two are logged. - with self.assertRaises(FakeProcessingError): - try: - worker.Process() - except: - worker.Disconnect() - raise - finally: - worker.Cleanup() - - self.assertLogMatches('FakeDisconnectionError') - self.assertLogMatches('FakeCleanupError') - self.assertItemsEqual(worker.called, ['Process', 'Disconnect', 'Cleanup'])
diff --git a/systrace/catapult/common/py_utils/py_utils/expectations_parser.py b/systrace/catapult/common/py_utils/py_utils/expectations_parser.py index 534b352..6fa9407 100644 --- a/systrace/catapult/common/py_utils/py_utils/expectations_parser.py +++ b/systrace/catapult/common/py_utils/py_utils/expectations_parser.py
@@ -2,11 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function import re -import six class ParseError(Exception): @@ -24,9 +20,9 @@ Conditions are combined using logical and. Example: ['Mac', 'Debug'] results: List of outcomes for test. Example: ['Skip', 'Pass'] """ - assert isinstance(reason, six.string_types) or reason is None + assert isinstance(reason, basestring) or reason is None self._reason = reason - assert isinstance(test, six.string_types) + assert isinstance(test, basestring) self._test = test assert isinstance(conditions, list) self._conditions = conditions
diff --git a/systrace/catapult/common/py_utils/py_utils/expectations_parser_unittest.py b/systrace/catapult/common/py_utils/py_utils/expectations_parser_unittest.py index 523e871..a842c4c 100644 --- a/systrace/catapult/common/py_utils/py_utils/expectations_parser_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/expectations_parser_unittest.py
@@ -3,14 +3,9 @@ # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import unittest from py_utils import expectations_parser -from six.moves import range # pylint: disable=redefined-builtin class TestExpectationParserTest(unittest.TestCase):
diff --git a/systrace/catapult/common/py_utils/py_utils/file_util.py b/systrace/catapult/common/py_utils/py_utils/file_util.py deleted file mode 100644 index b1602c9..0000000 --- a/systrace/catapult/common/py_utils/py_utils/file_util.py +++ /dev/null
@@ -1,23 +0,0 @@ -# Copyright 2018 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import errno -import os -import shutil - - -def CopyFileWithIntermediateDirectories(source_path, dest_path): - """Copies a file and creates intermediate directories as needed. - - Args: - source_path: Path to the source file. - dest_path: Path to the destination where the source file should be copied. - """ - assert os.path.exists(source_path) - try: - os.makedirs(os.path.dirname(dest_path)) - except OSError as e: - if e.errno != errno.EEXIST: - raise - shutil.copy(source_path, dest_path)
diff --git a/systrace/catapult/common/py_utils/py_utils/file_util_unittest.py b/systrace/catapult/common/py_utils/py_utils/file_util_unittest.py deleted file mode 100644 index 4bb19a1..0000000 --- a/systrace/catapult/common/py_utils/py_utils/file_util_unittest.py +++ /dev/null
@@ -1,66 +0,0 @@ -# Copyright 2018 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import errno -import os -import shutil -import tempfile -import unittest - -from py_utils import file_util - - -class FileUtilTest(unittest.TestCase): - - def setUp(self): - self._tempdir = tempfile.mkdtemp() - - def tearDown(self): - shutil.rmtree(self._tempdir) - - def testCopySimple(self): - source_path = os.path.join(self._tempdir, 'source') - with open(source_path, 'w') as f: - f.write('data') - - dest_path = os.path.join(self._tempdir, 'dest') - - self.assertFalse(os.path.exists(dest_path)) - file_util.CopyFileWithIntermediateDirectories(source_path, dest_path) - self.assertTrue(os.path.exists(dest_path)) - self.assertEqual('data', open(dest_path, 'r').read()) - - def testCopyMakeDirectories(self): - source_path = os.path.join(self._tempdir, 'source') - with open(source_path, 'w') as f: - f.write('data') - - dest_path = os.path.join(self._tempdir, 'path', 'to', 'dest') - - self.assertFalse(os.path.exists(dest_path)) - file_util.CopyFileWithIntermediateDirectories(source_path, dest_path) - self.assertTrue(os.path.exists(dest_path)) - self.assertEqual('data', open(dest_path, 'r').read()) - - def testCopyOverwrites(self): - source_path = os.path.join(self._tempdir, 'source') - with open(source_path, 'w') as f: - f.write('source_data') - - dest_path = os.path.join(self._tempdir, 'dest') - with open(dest_path, 'w') as f: - f.write('existing_data') - - file_util.CopyFileWithIntermediateDirectories(source_path, dest_path) - self.assertEqual('source_data', open(dest_path, 'r').read()) - - def testRaisesError(self): - source_path = os.path.join(self._tempdir, 'source') - with open(source_path, 'w') as f: - f.write('data') - - dest_path = "" - with self.assertRaises(OSError) as cm: - file_util.CopyFileWithIntermediateDirectories(source_path, dest_path) - self.assertEqual(errno.ENOENT, cm.exception.error_code)
diff --git a/systrace/catapult/common/py_utils/py_utils/lock.py b/systrace/catapult/common/py_utils/py_utils/lock.py index ade4d1f..aa9a095 100644 --- a/systrace/catapult/common/py_utils/py_utils/lock.py +++ b/systrace/catapult/common/py_utils/py_utils/lock.py
@@ -14,23 +14,19 @@ pass -# pylint: disable=import-error -# pylint: disable=wrong-import-position if os.name == 'nt': - import win32con - import win32file - import pywintypes + import win32con # pylint: disable=import-error + import win32file # pylint: disable=import-error + import pywintypes # pylint: disable=import-error LOCK_EX = win32con.LOCKFILE_EXCLUSIVE_LOCK LOCK_SH = 0 # the default LOCK_NB = win32con.LOCKFILE_FAIL_IMMEDIATELY _OVERLAPPED = pywintypes.OVERLAPPED() elif os.name == 'posix': - import fcntl + import fcntl # pylint: disable=import-error LOCK_EX = fcntl.LOCK_EX LOCK_SH = fcntl.LOCK_SH LOCK_NB = fcntl.LOCK_NB -# pylint: enable=import-error -# pylint: enable=wrong-import-position @contextlib.contextmanager @@ -84,7 +80,7 @@ hfile = win32file._get_osfhandle(target_file.fileno()) try: win32file.LockFileEx(hfile, flags, 0, -0x10000, _OVERLAPPED) - except pywintypes.error as exc_value: + except pywintypes.error, exc_value: if exc_value[0] == 33: raise LockException('Error trying acquiring lock of %s: %s' % (target_file.name, exc_value[2])) @@ -96,7 +92,7 @@ hfile = win32file._get_osfhandle(target_file.fileno()) try: win32file.UnlockFileEx(hfile, 0, -0x10000, _OVERLAPPED) - except pywintypes.error as exc_value: + except pywintypes.error, exc_value: if exc_value[0] == 158: # error: (158, 'UnlockFileEx', 'The segment is already unlocked.') # To match the 'posix' implementation, silently ignore this error @@ -109,7 +105,7 @@ def _LockImplPosix(target_file, flags): try: fcntl.flock(target_file.fileno(), flags) - except IOError as exc_value: + except IOError, exc_value: if exc_value[0] == 11 or exc_value[0] == 35: raise LockException('Error trying acquiring lock of %s: %s' % (target_file.name, exc_value[1]))
diff --git a/systrace/catapult/common/py_utils/py_utils/lock_unittest.py b/systrace/catapult/common/py_utils/py_utils/lock_unittest.py index 7e17e55..a260621 100644 --- a/systrace/catapult/common/py_utils/py_utils/lock_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/lock_unittest.py
@@ -2,18 +2,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import multiprocessing import os -import tempfile import time import unittest +import tempfile + from py_utils import lock -from six.moves import range # pylint: disable=redefined-builtin def _AppendTextToFile(file_name):
diff --git a/systrace/catapult/common/py_utils/py_utils/logging_util_unittest.py b/systrace/catapult/common/py_utils/py_utils/logging_util_unittest.py index eb26098..a957705 100644 --- a/systrace/catapult/common/py_utils/py_utils/logging_util_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/logging_util_unittest.py
@@ -2,19 +2,15 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import logging +import StringIO import unittest -try: - from six import StringIO -except ImportError: - from io import StringIO - from py_utils import logging_util class LoggingUtilTest(unittest.TestCase): def testCapture(self): - s = StringIO() + s = StringIO.StringIO() with logging_util.CaptureLogs(s): logging.fatal('test')
diff --git a/systrace/catapult/common/py_utils/py_utils/memory_debug.py b/systrace/catapult/common/py_utils/py_utils/memory_debug.py index 26f10ae..864725d 100755 --- a/systrace/catapult/common/py_utils/py_utils/memory_debug.py +++ b/systrace/catapult/common/py_utils/py_utils/memory_debug.py
@@ -6,11 +6,8 @@ import heapq import logging import os +import psutil import sys -try: - import psutil -except ImportError: - psutil = None BYTE_UNITS = ['B', 'KiB', 'MiB', 'GiB'] @@ -42,9 +39,6 @@ def LogHostMemoryUsage(top_n=10, level=logging.INFO): - if not psutil: - logging.warning('psutil module is not found, skipping logging memory info') - return if psutil.version_info < (2, 0): logging.warning('psutil %s too old, upgrade to version 2.0 or higher' ' for memory usage information.', psutil.__version__) @@ -61,11 +55,7 @@ logging.log(level, 'Memory usage of top %i processes groups', top_n) pinfos_by_names = {} for p in psutil.process_iter(): - try: - pinfo = _GetProcessInfo(p) - except psutil.NoSuchProcess: - logging.exception('process %s no longer exists', p) - continue + pinfo = _GetProcessInfo(p) pname = pinfo['name'] if pname not in pinfos_by_names: pinfos_by_names[pname] = {'name': pname, 'total_mem_rss': 0, 'pids': []} @@ -73,9 +63,7 @@ pinfos_by_names[pname]['pids'].append(str(pinfo['pid'])) sorted_pinfo_groups = heapq.nlargest( - top_n, - list(pinfos_by_names.values()), - key=lambda item: item['total_mem_rss']) + top_n, pinfos_by_names.values(), key=lambda item: item['total_mem_rss']) for group in sorted_pinfo_groups: group['total_mem_rss_fmt'] = FormatBytes(group['total_mem_rss']) group['pids_fmt'] = ', '.join(group['pids'])
diff --git a/systrace/catapult/common/py_utils/py_utils/modules_util.py b/systrace/catapult/common/py_utils/py_utils/modules_util.py deleted file mode 100644 index 6c1106d..0000000 --- a/systrace/catapult/common/py_utils/py_utils/modules_util.py +++ /dev/null
@@ -1,35 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -from distutils import version # pylint: disable=no-name-in-module - - -def RequireVersion(module, min_version, max_version=None): - """Ensure that an imported module's version is within a required range. - - Version strings are parsed with LooseVersion, so versions like "1.8.0rc1" - (default numpy on macOS Sierra) and "2.4.13.2" (a version of OpenCV 2.x) - are allowed. - - Args: - module: An already imported python module. - min_version: The module must have this or a higher version. - max_version: Optional, the module should not have this or a higher version. - - Raises: - ImportError if the module's __version__ is not within the allowed range. - """ - module_version = version.LooseVersion(module.__version__) - min_version = version.LooseVersion(str(min_version)) - valid_version = min_version <= module_version - - if max_version is not None: - max_version = version.LooseVersion(str(max_version)) - valid_version = valid_version and (module_version < max_version) - wants_version = 'at or above %s and below %s' % (min_version, max_version) - else: - wants_version = '%s or higher' % min_version - - if not valid_version: - raise ImportError('%s has version %s, but version %s is required' % ( - module.__name__, module_version, wants_version))
diff --git a/systrace/catapult/common/py_utils/py_utils/modules_util_unittest.py b/systrace/catapult/common/py_utils/py_utils/modules_util_unittest.py deleted file mode 100644 index aa05674..0000000 --- a/systrace/catapult/common/py_utils/py_utils/modules_util_unittest.py +++ /dev/null
@@ -1,41 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -import unittest - -from py_utils import modules_util - - -class FakeModule(object): - def __init__(self, name, version): - self.__name__ = name - self.__version__ = version - - -class ModulesUitlTest(unittest.TestCase): - def testRequireVersion_valid(self): - numpy = FakeModule('numpy', '2.3') - try: - modules_util.RequireVersion(numpy, '1.0') - except ImportError: - self.fail('ImportError raised unexpectedly') - - def testRequireVersion_versionTooLow(self): - numpy = FakeModule('numpy', '2.3') - with self.assertRaises(ImportError) as error: - modules_util.RequireVersion(numpy, '2.5') - self.assertEqual( - str(error.exception), - 'numpy has version 2.3, but version 2.5 or higher is required') - - def testRequireVersion_versionTooHigh(self): - numpy = FakeModule('numpy', '2.3') - with self.assertRaises(ImportError) as error: - modules_util.RequireVersion(numpy, '1.0', '2.0') - self.assertEqual( - str(error.exception), 'numpy has version 2.3, but version' - ' at or above 1.0 and below 2.0 is required') - - -if __name__ == '__main__': - unittest.main()
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/__init__.py b/systrace/catapult/common/py_utils/py_utils/refactor/__init__.py index 938ff68..e3fbb5f 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/__init__.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/__init__.py
@@ -12,7 +12,7 @@ import multiprocessing # pylint: disable=wildcard-import -from py_utils.refactor.annotated_symbol import * # pylint: disable=redefined-builtin +from py_utils.refactor.annotated_symbol import * from py_utils.refactor.module import Module
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/__init__.py b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/__init__.py index 1bed84b..610bc15 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/__init__.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/__init__.py
@@ -6,7 +6,7 @@ from py_utils.refactor.annotated_symbol.class_definition import * from py_utils.refactor.annotated_symbol.function_definition import * from py_utils.refactor.annotated_symbol.import_statement import * -from py_utils.refactor.annotated_symbol.reference import * # pylint: disable=redefined-builtin +from py_utils.refactor.annotated_symbol.reference import * from py_utils.refactor import snippet @@ -55,7 +55,7 @@ if not isinstance(node, snippet.Symbol): return node - children = [_AnnotateNode(c) for c in node.children] + children = map(_AnnotateNode, node.children) for symbol_type in ANNOTATED_GROUPINGS: annotated_grouping = symbol_type.Annotate(children)
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/base_symbol.py b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/base_symbol.py index 5e473bc..2e28e89 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/base_symbol.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/base_symbol.py
@@ -2,11 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function from py_utils.refactor import snippet -from six.moves import range # pylint: disable=redefined-builtin class AnnotatedSymbol(snippet.Symbol): @@ -27,7 +23,7 @@ return super(AnnotatedSymbol, self).__setattr__(name, value) def Cut(self, child): - for i in range(len(self._children)): + for i in xrange(len(self._children)): if self._children[i] == child: self._modified = True del self._children[i]
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/class_definition.py b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/class_definition.py index a83ac96..814958f 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/class_definition.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/class_definition.py
@@ -13,6 +13,8 @@ class Class(base_symbol.AnnotatedSymbol): + # pylint: disable=abstract-class-not-used + @classmethod def Annotate(cls, symbol_type, children): if symbol_type != symbol.stmt:
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/function_definition.py b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/function_definition.py index 384d3cf..50a1672 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/function_definition.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/function_definition.py
@@ -13,6 +13,8 @@ class Function(base_symbol.AnnotatedSymbol): + # pylint: disable=abstract-class-not-used + @classmethod def Annotate(cls, symbol_type, children): if symbol_type != symbol.stmt:
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/import_statement.py b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/import_statement.py index 6318eff..5c38c10 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/import_statement.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/import_statement.py
@@ -2,17 +2,13 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - +import itertools import keyword import symbol import token -from py_utils.refactor import snippet from py_utils.refactor.annotated_symbol import base_symbol -from six.moves import zip_longest # pylint: disable=redefined-builtin +from py_utils.refactor import snippet __all__ = [ @@ -43,11 +39,11 @@ raise ValueError('%s is a reserved keyword.' % value_part) # If we have too many children, cut the list down to size. - # pylint: disable=attribute-defined-outside-init self._children = self._children[:len(value_parts)*2-1] # Update child nodes. - for child, value_part in zip_longest(self._children[::2], value_parts): + for child, value_part in itertools.izip_longest( + self._children[::2], value_parts): if child: # Modify existing children. This helps preserve comments and spaces. child.value = value_part @@ -86,22 +82,18 @@ raise ValueError('%s is a reserved keyword.' % value) if value: - # pylint: disable=access-member-before-definition if len(self.children) < 3: # If we currently have no alias, add one. - # pylint: disable=access-member-before-definition self.children.append( snippet.TokenSnippet.Create(token.NAME, 'as', (0, 1))) - # pylint: disable=access-member-before-definition self.children.append( snippet.TokenSnippet.Create(token.NAME, value, (0, 1))) else: # We already have an alias. Just update the value. - # pylint: disable=access-member-before-definition self.children[2].value = value else: # Removing the alias. Strip the "as foo". - self.children = [self.children[0]] # pylint: disable=line-too-long, attribute-defined-outside-init + self.children = [self.children[0]] class Import(base_symbol.AnnotatedSymbol):
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/reference.py b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/reference.py index 9a273d8..757c57f 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/reference.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/annotated_symbol/reference.py
@@ -2,17 +2,12 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - +import itertools import symbol import token -from py_utils.refactor import snippet from py_utils.refactor.annotated_symbol import base_symbol -from six.moves import range # pylint: disable=redefined-builtin -from six.moves import zip_longest # pylint: disable=redefined-builtin +from py_utils.refactor import snippet __all__ = [ @@ -30,7 +25,7 @@ if not nodes[0].children or nodes[0].children[0].type != token.NAME: return None - for i in range(1, len(nodes)): + for i in xrange(1, len(nodes)): if not nodes: break if nodes[i].type != symbol.trailer: @@ -63,11 +58,11 @@ value_parts = value.split('.') # If we have too many children, cut the list down to size. - # pylint: disable=attribute-defined-outside-init self._children = self._children[:len(value_parts)] # Update child nodes. - for child, value_part in zip_longest(self._children, value_parts): + for child, value_part in itertools.izip_longest( + self._children, value_parts): if child: # Modify existing children. This helps preserve comments and spaces. child.children[-1].value = value_part
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/offset_token.py b/systrace/catapult/common/py_utils/py_utils/refactor/offset_token.py index deca085..5fa953e 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/offset_token.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/offset_token.py
@@ -1,23 +1,18 @@ -# Lint as: python2, python3 # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function import collections import itertools import token import tokenize -from six.moves import zip # pylint: disable=redefined-builtin def _Pairwise(iterable): """s -> (None, s0), (s0, s1), (s1, s2), (s2, s3), ...""" a, b = itertools.tee(iterable) a = itertools.chain((None,), a) - return zip(a, b) + return itertools.izip(a, b) class OffsetToken(object):
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor/snippet.py b/systrace/catapult/common/py_utils/py_utils/refactor/snippet.py index 7056abf..b98561a 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor/snippet.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor/snippet.py
@@ -2,8 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import print_function - import parser import symbol import sys @@ -142,13 +140,13 @@ def PrintTree(self, indent=0, stream=sys.stdout): stream.write(' ' * indent) if not self.tokens: - print(self.type_name, file=stream) + print >> stream, self.type_name return - print('%-4s' % self.type_name, repr(self.tokens[0].string), file=stream) + print >> stream, '%-4s' % self.type_name, repr(self.tokens[0].string) for tok in self.tokens[1:]: stream.write(' ' * indent) - print(' ' * max(len(self.type_name), 4), repr(tok.string), file=stream) + print >> stream, ' ' * max(len(self.type_name), 4), repr(tok.string) class Symbol(Snippet): @@ -193,10 +191,10 @@ # If there's only one child, collapse it onto the same line. node = self while len(node.children) == 1 and len(node.children[0].children) == 1: - print(node.type_name, end=' ', file=stream) + print >> stream, node.type_name, node = node.children[0] - print(node.type_name, file=stream) + print >> stream, node.type_name for child in node.children: child.PrintTree(indent + 2, stream)
diff --git a/systrace/catapult/common/py_utils/py_utils/refactor_util/move.py b/systrace/catapult/common/py_utils/py_utils/refactor_util/move.py index 6d0a7cb..d68f93b 100644 --- a/systrace/catapult/common/py_utils/py_utils/refactor_util/move.py +++ b/systrace/catapult/common/py_utils/py_utils/refactor_util/move.py
@@ -2,8 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import print_function - import functools import os import sys @@ -37,7 +35,7 @@ if move.UpdateImportAndReferences(module, import_statement): break except NotImplementedError as e: - print('Error updating %s: %s' % (module.file_path, e), file=sys.stderr) + print >> sys.stderr, 'Error updating %s: %s' % (module.file_path, e) class _Move(object):
diff --git a/systrace/catapult/common/py_utils/py_utils/retry_util.py b/systrace/catapult/common/py_utils/py_utils/retry_util.py index a11bd80..e5826ca 100644 --- a/systrace/catapult/common/py_utils/py_utils/retry_util.py +++ b/systrace/catapult/common/py_utils/py_utils/retry_util.py
@@ -1,13 +1,9 @@ # Copyright 2018 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function import functools import logging import time -from six.moves import range # pylint: disable=redefined-builtin def RetryOnException(exc_type, retries): @@ -46,7 +42,7 @@ def Wrapper(*args, **kwargs): wait = 1 kwargs.setdefault('retries', retries) - for _ in range(kwargs['retries']): + for _ in xrange(kwargs['retries']): try: return f(*args, **kwargs) except exc_type as exc:
diff --git a/systrace/catapult/common/py_utils/py_utils/retry_util_unittest.py b/systrace/catapult/common/py_utils/py_utils/retry_util_unittest.py index f24577f..151f88e 100644 --- a/systrace/catapult/common/py_utils/py_utils/retry_util_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/retry_util_unittest.py
@@ -1,9 +1,8 @@ # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import unittest - import mock +import unittest from py_utils import retry_util
diff --git a/systrace/catapult/common/py_utils/py_utils/shell_util.py b/systrace/catapult/common/py_utils/py_utils/shell_util.py index 6af7f8e..2a529c8 100644 --- a/systrace/catapult/common/py_utils/py_utils/shell_util.py +++ b/systrace/catapult/common/py_utils/py_utils/shell_util.py
@@ -4,8 +4,6 @@ # # Shell scripting helpers (created for Telemetry dependency roll scripts). -from __future__ import print_function - import os as _os import shutil as _shutil import subprocess as _subprocess @@ -16,12 +14,12 @@ def ScopedChangeDir(new_path): old_path = _os.getcwd() _os.chdir(new_path) - print('> cd', _os.getcwd()) + print '> cd', _os.getcwd() try: yield finally: _os.chdir(old_path) - print('> cd', old_path) + print '> cd', old_path @_contextmanager def ScopedTempDir(): @@ -38,5 +36,5 @@ args = [_os.path.join(*path_parts)] + list(args) env = dict(_os.environ) env.update(kwargs) - print('>', ' '.join(args)) + print '>', ' '.join(args) _subprocess.check_call(args, env=env)
diff --git a/systrace/catapult/common/py_utils/py_utils/slots_metaclass_unittest.py b/systrace/catapult/common/py_utils/py_utils/slots_metaclass_unittest.py index fe21b27..79bb343 100644 --- a/systrace/catapult/common/py_utils/py_utils/slots_metaclass_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/slots_metaclass_unittest.py
@@ -2,21 +2,15 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import unittest from py_utils import slots_metaclass -import six - class SlotsMetaclassUnittest(unittest.TestCase): def testSlotsMetaclass(self): - - class NiceClass(six.with_metaclass(slots_metaclass.SlotsMetaclass, object)): + class NiceClass(object): + __metaclass__ = slots_metaclass.SlotsMetaclass __slots__ = '_nice', def __init__(self, nice):
diff --git a/systrace/catapult/common/py_utils/py_utils/tempfile_ext.py b/systrace/catapult/common/py_utils/py_utils/tempfile_ext.py index ba68c52..394ad5b 100644 --- a/systrace/catapult/common/py_utils/py_utils/tempfile_ext.py +++ b/systrace/catapult/common/py_utils/py_utils/tempfile_ext.py
@@ -2,8 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. + import contextlib -import os import shutil import tempfile @@ -28,32 +28,3 @@ yield d finally: shutil.rmtree(d) - - -@contextlib.contextmanager -def NamedTemporaryFile(mode='w+b', suffix='', prefix='tmp'): - """A conext manager to hold a named temporary file. - - It's similar to Python's tempfile.NamedTemporaryFile except: - - The file is _not_ deleted when you close the temporary file handle, so you - can close it and then use the name of the file to re-open it later. - - The file *is* always deleted when exiting the context managed code. - """ - with NamedTemporaryDirectory() as temp_dir: - yield tempfile.NamedTemporaryFile( - mode=mode, suffix=suffix, prefix=prefix, dir=temp_dir, delete=False) - - -@contextlib.contextmanager -def TemporaryFileName(prefix='tmp', suffix=''): - """A context manager to just get the path to a file that does not exist. - - The parent directory of the file is a newly clreated temporary directory, - and the name of the file is just `prefix + suffix`. The file istelf is not - created, you are in fact guaranteed that it does not exit. - - The entire parent directory, possibly including the named temporary file and - any sibling files, is entirely deleted when exiting the context managed code. - """ - with NamedTemporaryDirectory() as temp_dir: - yield os.path.join(temp_dir, prefix + suffix)
diff --git a/systrace/catapult/common/py_utils/py_utils/tempfile_ext_unittest.py b/systrace/catapult/common/py_utils/py_utils/tempfile_ext_unittest.py index 76a0efd..6844623 100644 --- a/systrace/catapult/common/py_utils/py_utils/tempfile_ext_unittest.py +++ b/systrace/catapult/common/py_utils/py_utils/tempfile_ext_unittest.py
@@ -2,15 +2,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import filecmp import os -import shutil from py_utils import tempfile_ext from pyfakefs import fake_filesystem_unittest class NamedTemporaryDirectoryTest(fake_filesystem_unittest.TestCase): + def setUp(self): self.setUpPyfakefs() @@ -38,37 +37,3 @@ self.fs.CreateDirectory(test_dir) with tempfile_ext.NamedTemporaryDirectory(dir=test_dir) as d: self.assertEquals(test_dir, os.path.dirname(d)) - - -class TemporaryFilesTest(fake_filesystem_unittest.TestCase): - def setUp(self): - self.setUpPyfakefs() - - def tearDown(self): - self.tearDownPyfakefs() - - def testNamedTemporaryFile(self): - with tempfile_ext.NamedTemporaryFile() as f: - self.assertTrue(os.path.isfile(f.name)) - f.write('<data>') - f.close() - self.assertTrue(os.path.exists(f.name)) - with open(f.name) as f2: - self.assertEqual(f2.read(), '<data>') - - self.assertFalse(os.path.exists(f.name)) - - def testTemporaryFileName(self): - with tempfile_ext.TemporaryFileName('foo') as filepath: - self.assertTrue(os.path.basename(filepath), 'foo') - self.assertFalse(os.path.exists(filepath)) - - with open(filepath, 'w') as f: - f.write('<data>') - self.assertTrue(os.path.exists(filepath)) - - shutil.copyfile(filepath, filepath + '.bak') - self.assertTrue(filecmp.cmp(filepath, filepath + '.bak')) - - self.assertFalse(os.path.exists(filepath)) - self.assertFalse(os.path.exists(os.path.dirname(filepath)))
diff --git a/systrace/catapult/common/py_utils/py_utils/xvfb.py b/systrace/catapult/common/py_utils/py_utils/xvfb.py index 06ce7dd..c09f3e3 100644 --- a/systrace/catapult/common/py_utils/py_utils/xvfb.py +++ b/systrace/catapult/common/py_utils/py_utils/xvfb.py
@@ -10,8 +10,6 @@ def ShouldStartXvfb(): - # TODO(crbug.com/973847): Note that you can locally change this to return - # False to diagnose timeouts for dev server tests. return platform.system() == 'Linux'
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs.py index 40b01bb..dfcb5e6 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs.py
@@ -2,19 +2,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import codecs -import collections import os import sys - -import six +import collections +import StringIO -class WithableStringIO(six.StringIO): +class WithableStringIO(StringIO.StringIO): def __enter__(self, *args): return self @@ -28,7 +23,7 @@ def __init__(self, initial_filenames_and_contents=None): self._file_contents = {} if initial_filenames_and_contents: - for k, v in six.iteritems(initial_filenames_and_contents): + for k, v in initial_filenames_and_contents.iteritems(): self._file_contents[k] = v self._bound = False @@ -111,7 +106,7 @@ def _FakeWalk(self, top): assert os.path.isabs(top) - all_filenames = list(self._file_contents.keys()) + all_filenames = self._file_contents.keys() pending_prefixes = collections.deque() pending_prefixes.append(top) visited_prefixes = set()
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py index 7e225f5..0825013 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py
@@ -34,19 +34,19 @@ fs.AddFile('/a.txt', 'foobar') with fs: gen = os.walk(os.path.normpath('/')) - r = next(gen) + r = gen.next() self.assertEquals((os.path.normpath('/'), ['x'], ['a.txt']), r) - r = next(gen) + r = gen.next() self.assertEquals((os.path.normpath('/x'), ['w', 'w2'], ['y.txt']), r) - r = next(gen) + r = gen.next() self.assertEquals((os.path.normpath('/x/w'), [], ['z.txt']), r) - r = next(gen) + r = gen.next() self.assertEquals((os.path.normpath('/x/w2'), ['w3'], []), r) - r = next(gen) + r = gen.next() self.assertEquals((os.path.normpath('/x/w2/w3'), [], ['z3.txt']), r) self.assertRaises(StopIteration, gen.next)
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/generate.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/generate.py index 484c705..6368380 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/generate.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/generate.py
@@ -2,23 +2,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import os -import subprocess import sys +import subprocess import tempfile +import StringIO from py_vulcanize import html_generation_controller -try: - from six import StringIO -except ImportError: - from io import StringIO - - html_warning_message = """ @@ -54,7 +45,7 @@ def _AssertIsUTF8(f): - if isinstance(f, StringIO): + if isinstance(f, StringIO.StringIO): return assert f.encoding == 'utf-8' @@ -88,7 +79,7 @@ dir_for_include_tag_root=None, minify=False, report_sizes=False): - f = StringIO() + f = StringIO.StringIO() GenerateJSToFile(f, load_sequence, use_include_tags_for_scripts, @@ -115,7 +106,7 @@ if not minify: flatten_to_file = f else: - flatten_to_file = StringIO() + flatten_to_file = StringIO.StringIO() for module in load_sequence: module.AppendJSContentsToFile(flatten_to_file, @@ -129,7 +120,7 @@ if report_sizes: for module in load_sequence: - s = StringIO() + s = StringIO.StringIO() module.AppendJSContentsToFile(s, use_include_tags_for_scripts, dir_for_include_tag_root) @@ -149,8 +140,7 @@ sln = '.'.join(parts[:2]) # Output - print(('%i\t%s\t%s\t%s\t%s' % - (len(js), min_js_size, module.name, tln, sln))) + print '%i\t%s\t%s\t%s\t%s' % (len(js), min_js_size, module.name, tln, sln) sys.stdout.flush() @@ -202,7 +192,7 @@ def GenerateStandaloneHTMLAsString(*args, **kwargs): - f = StringIO() + f = StringIO.StringIO() GenerateStandaloneHTMLToFile(f, *args, **kwargs) return f.getvalue()
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/html_module_unittest.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/html_module_unittest.py index e8438f4..fb4af16 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/html_module_unittest.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/html_module_unittest.py
@@ -2,12 +2,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import os import unittest +import StringIO from py_vulcanize import fake_fs from py_vulcanize import generate @@ -17,7 +14,6 @@ from py_vulcanize import project as project_module from py_vulcanize import resource from py_vulcanize import resource_loader as resource_loader -import six class ResourceWithFakeContents(resource.Resource): @@ -44,7 +40,7 @@ self._source_paths = source_paths self._file_contents = {} if initial_filenames_and_contents: - for k, v in six.iteritems(initial_filenames_and_contents): + for k, v in initial_filenames_and_contents.iteritems(): self._file_contents[k] = v def FindResourceGivenAbsolutePath(self, absolute_path): @@ -276,7 +272,7 @@ loader = resource_loader.ResourceLoader(project) my_component = loader.LoadModule(module_name='a.b.my_component') - f = six.StringIO() + f = StringIO.StringIO() my_component.AppendJSContentsToFile( f, use_include_tags_for_scripts=False, @@ -313,7 +309,7 @@ set([os.path.normpath('/tmp/a/b/my_component.html'), os.path.normpath('/tmp/a/something.jpg')])) - f = six.StringIO() + f = StringIO.StringIO() ctl = html_generation_controller.HTMLGenerationController() my_component.AppendHTMLContentsToFile(f, ctl) html = f.getvalue().rstrip()
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/module.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/module.py index d27f350..bd6a68f 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/module.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/module.py
@@ -11,16 +11,11 @@ Other resources include HTML templates, raw JavaScript files, and stylesheets. """ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import codecs -import inspect import os +import inspect +import codecs from py_vulcanize import js_utils -import six class DepsException(Exception): @@ -97,7 +92,7 @@ """ def __init__(self, loader, name, resource, load_resource=True): - assert isinstance(name, six.string_types), 'Got %s instead' % repr(name) + assert isinstance(name, basestring), 'Got %s instead' % repr(name) global _next_module_id self._id = _next_module_id
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py index 88ce218..4a0888c 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
@@ -2,18 +2,13 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import os import sys -from py_vulcanize import html_generation_controller from py_vulcanize import js_utils from py_vulcanize import module from py_vulcanize import strip_js_comments -import six +from py_vulcanize import html_generation_controller def _AddToPathIfNeeded(path): @@ -58,7 +53,7 @@ @property def contents(self): - return six.text_type(self._soup.string) + return unicode(self._soup.string) @property def stripped_contents(self): @@ -192,13 +187,13 @@ @property def inline_stylesheets(self): tags = self._soup.findAll('style') - return [six.text_type(t.string) for t in tags] + return [unicode(t.string) for t in tags] def YieldHTMLInPieces(self, controller, minify=False): yield self.GenerateHTML(controller, minify) def GenerateHTML(self, controller, minify=False, prettify=False): - soup = _CreateSoupWithoutHeadOrBody(six.text_type(self._soup)) + soup = _CreateSoupWithoutHeadOrBody(unicode(self._soup)) # Remove declaration. for x in soup.contents: @@ -228,7 +223,7 @@ # Process all in-line styles. inline_styles = soup.findAll('style') for style in inline_styles: - html = controller.GetHTMLForInlineStylesheet(six.text_type(style.string)) + html = controller.GetHTMLForInlineStylesheet(unicode(style.string)) if html: ns = soup.new_tag('style') ns.append(bs4.NavigableString(html)) @@ -257,7 +252,7 @@ return soup.prettify('utf-8').strip() # We are done. - return six.text_type(soup).strip() + return unicode(soup).strip() @property def html_contents_without_links_and_script(self):
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/project.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/project.py index 7a16988..d8f9ca4 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/project.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/project.py
@@ -2,19 +2,11 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function import collections import os - -try: - from six import StringIO -except ImportError: - from io import StringIO +import cStringIO from py_vulcanize import resource_loader -import six def _FindAllFilesRecursive(source_paths): @@ -217,7 +209,7 @@ self.edges = [] def AddModule(self, m): - f = StringIO() + f = cStringIO.StringIO() m.AppendJSContentsToFile(f, False, None) attrs = { @@ -226,7 +218,7 @@ f.close() - attr_items = ['%s="%s"' % (x, y) for x, y in six.iteritems(attrs)] + attr_items = ['%s="%s"' % (x, y) for x, y in attrs.iteritems()] node = 'M%i [%s];' % (m.id, ','.join(attr_items)) self.nodes.append(node)
diff --git a/systrace/catapult/common/py_vulcanize/py_vulcanize/strip_js_comments.py b/systrace/catapult/common/py_vulcanize/py_vulcanize/strip_js_comments.py index 73c3a88..d63c667 100644 --- a/systrace/catapult/common/py_vulcanize/py_vulcanize/strip_js_comments.py +++ b/systrace/catapult/common/py_vulcanize/py_vulcanize/strip_js_comments.py
@@ -51,14 +51,14 @@ token_stream = _TokenizeJS(text).__iter__() while True: try: - t = next(token_stream) + t = token_stream.next() except StopIteration: break if t == '//': while True: try: - t2 = next(token_stream) + t2 = token_stream.next() if t2 == '\n': break except StopIteration: @@ -67,7 +67,7 @@ nesting = 1 while True: try: - t2 = next(token_stream) + t2 = token_stream.next() if t2 == '/*': nesting += 1 elif t2 == '*/':
diff --git a/systrace/catapult/dependency_manager/PRESUBMIT.py b/systrace/catapult/dependency_manager/PRESUBMIT.py index 04039d5..a34480c 100644 --- a/systrace/catapult/dependency_manager/PRESUBMIT.py +++ b/systrace/catapult/dependency_manager/PRESUBMIT.py
@@ -29,5 +29,4 @@ input_api.os_path.join(catapult_dir, 'third_party', 'mock'), input_api.os_path.join(catapult_dir, 'third_party', 'pyfakefs'), - input_api.os_path.join(catapult_dir, 'third_party', 'zipfile'), ]
diff --git a/systrace/catapult/dependency_manager/dependency_manager/__init__.py b/systrace/catapult/dependency_manager/dependency_manager/__init__.py index 84cca5a..68efbdb 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/__init__.py +++ b/systrace/catapult/dependency_manager/dependency_manager/__init__.py
@@ -25,7 +25,7 @@ _AddDirToPythonPath(DEPENDENCY_MANAGER_PATH) -# pylint: disable=unused-import,wrong-import-position +# pylint: disable=unused-import from .archive_info import ArchiveInfo from .base_config import BaseConfig from .cloud_storage_info import CloudStorageInfo
diff --git a/systrace/catapult/dependency_manager/dependency_manager/archive_info.py b/systrace/catapult/dependency_manager/dependency_manager/archive_info.py index f28028c..ff13f90 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/archive_info.py +++ b/systrace/catapult/dependency_manager/dependency_manager/archive_info.py
@@ -48,7 +48,7 @@ # Remove stale unzip results if self._stale_unzip_path_glob: for path in glob.glob(self._stale_unzip_path_glob): - shutil.rmtree(path, ignore_errors=True) + shutil.rmtree(path) # TODO(aiolos): Replace UnzipFile with zipfile.extractall once python # version 2.7.4 or later can safely be assumed. dependency_manager_util.UnzipArchive( @@ -62,7 +62,8 @@ def ShouldUnzipArchive(self): if not self._has_minimum_data: raise exceptions.ArchiveError( - 'Missing needed info to unzip archive. Know data: %s' % self) + 'Missing needed info to unzip archive. Known data: %s', + self.data_string) return not os.path.exists(self._dependency_path) @property
diff --git a/systrace/catapult/dependency_manager/dependency_manager/base_config.py b/systrace/catapult/dependency_manager/dependency_manager/base_config.py index a23d00a..c735688 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/base_config.py +++ b/systrace/catapult/dependency_manager/dependency_manager/base_config.py
@@ -190,26 +190,6 @@ def config_path(self): return self._config_path - def AddNewDependency( - self, dependency, cloud_storage_base_folder, cloud_storage_bucket): - self._ValidateIsConfigWritable() - if dependency in self: - raise ValueError('Config already contains dependency %s' % dependency) - self._config_data[dependency] = { - 'cloud_storage_base_folder': cloud_storage_base_folder, - 'cloud_storage_bucket': cloud_storage_bucket, - 'file_info': {}, - } - - def SetDownloadPath(self, dependency, platform, download_path): - self._ValidateIsConfigWritable() - if not dependency in self: - raise ValueError('Config does not contain dependency %s' % dependency) - platform_dicts = self._config_data[dependency]['file_info'] - if platform not in platform_dicts: - platform_dicts[platform] = {} - platform_dicts[platform]['download_path'] = download_path - def AddCloudStorageDependencyUpdateJob( self, dependency, platform, dependency_path, version=None, execute_job=True): @@ -313,14 +293,6 @@ return self._GetPlatformData( dependency, platform, data_type='version_in_cs') - def __contains__(self, dependency): - """ Returns whether this config contains |dependency| - - Args: - dependency: the string name of dependency - """ - return dependency in self._config_data - def _IsDirty(self): with open(self._config_path, 'r') as fstream: curr_config_data = json.load(fstream)
diff --git a/systrace/catapult/dependency_manager/dependency_manager/base_config_unittest.py b/systrace/catapult/dependency_manager/dependency_manager/base_config_unittest.py index c10d2a7..0dc775b 100755 --- a/systrace/catapult/dependency_manager/dependency_manager/base_config_unittest.py +++ b/systrace/catapult/dependency_manager/dependency_manager/base_config_unittest.py
@@ -1119,48 +1119,6 @@ self.fs.CreateFile(self.file_path, contents='\n'.join(self.expected_file_lines)) - def testContaining(self): - config = dependency_manager.BaseConfig(self.file_path) - self.assertTrue('dep1' in config) - self.assertTrue('dep2' in config) - self.assertFalse('dep3' in config) - - def testAddNewDependencyNotWriteable(self): - config = dependency_manager.BaseConfig(self.file_path) - with self.assertRaises(dependency_manager.ReadWriteError): - config.AddNewDependency('dep4', 'foo', 'bar') - - def testAddNewDependencyWriteableButDependencyAlreadyExists(self): - config = dependency_manager.BaseConfig(self.file_path, writable=True) - with self.assertRaises(ValueError): - config.AddNewDependency('dep2', 'foo', 'bar') - - def testAddNewDependencySuccessfully(self): - config = dependency_manager.BaseConfig(self.file_path, writable=True) - config.AddNewDependency('dep3', 'foo', 'bar') - self.assertTrue('dep3' in config) - - def testSetDownloadPathNotWritable(self): - config = dependency_manager.BaseConfig(self.file_path) - with self.assertRaises(dependency_manager.ReadWriteError): - config.SetDownloadPath('dep2', 'plat1', '../../relative/dep1/path1') - - def testSetDownloadPathOnExistingPlatformSuccesfully(self): - config = dependency_manager.BaseConfig(self.file_path, writable=True) - download_path = '../../relative/dep1/foo.bar' - config.SetDownloadPath('dep2', 'plat1', download_path) - self.assertEqual( - download_path, - config._GetPlatformData('dep2', 'plat1', 'download_path')) - - def testSetDownloadPathOnNewPlatformSuccesfully(self): - config = dependency_manager.BaseConfig(self.file_path, writable=True) - download_path = '../../relative/dep1/foo.bar' - config.SetDownloadPath('dep2', 'newplat', download_path) - self.assertEqual( - download_path, - config._GetPlatformData('dep2', 'newplat', 'download_path')) - def testSetPlatformDataFailureNotWritable(self): config = dependency_manager.BaseConfig(self.file_path) @@ -1452,6 +1410,7 @@ self.assertEqual(self.GetConfigDataFromDict(self.empty_dict), config._config_data) + @mock.patch('dependency_manager.dependency_info.DependencyInfo') @mock.patch('os.path') @mock.patch('__builtin__.open')
diff --git a/systrace/catapult/dependency_manager/dependency_manager/cloud_storage_info_unittest.py b/systrace/catapult/dependency_manager/dependency_manager/cloud_storage_info_unittest.py index 844465d..699cd50 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/cloud_storage_info_unittest.py +++ b/systrace/catapult/dependency_manager/dependency_manager/cloud_storage_info_unittest.py
@@ -144,7 +144,7 @@ # All of the needed information is given, but the downloaded path doesn't # exists after calling cloud storage. self.fs.RemoveObject(self.download_path) - cs_get_mock.side_effect = [True] # pylint: disable=redefined-variable-type + cs_get_mock.side_effect = [True] self.assertRaises( exceptions.FileNotFoundError, self.cs_info.GetRemotePath)
diff --git a/systrace/catapult/dependency_manager/dependency_manager/dependency_info.py b/systrace/catapult/dependency_manager/dependency_manager/dependency_info.py index 899657e..942d57e 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/dependency_info.py +++ b/systrace/catapult/dependency_manager/dependency_manager/dependency_info.py
@@ -16,7 +16,7 @@ for error messages to improve debugging. Optional: - local_path_info: A LocalPathInfo instance. + local_paths: A list of paths to search in order for a local file. cloud_storage_info: An instance of CloudStorageInfo. """ # TODO(aiolos): update the above doc string for A) the usage of zip files
diff --git a/systrace/catapult/dependency_manager/dependency_manager/local_path_info.py b/systrace/catapult/dependency_manager/dependency_manager/local_path_info.py index 8ac0152..0103e8f 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/local_path_info.py +++ b/systrace/catapult/dependency_manager/dependency_manager/local_path_info.py
@@ -8,50 +8,21 @@ class LocalPathInfo(object): def __init__(self, path_priority_groups): - """Container for a set of local file paths where a given dependency - can be stored. - - Organized as a list of groups, where each group is itself a file path list. - See GetLocalPath() to understand how they are used. - - Args: - path_priority_groups: Can be either None, or a list of file path - strings (corresponding to a list of groups, where each group has - a single file path), or a list of a list of file path strings - (i.e. a list of groups). - """ self._path_priority_groups = self._ParseLocalPaths(path_priority_groups) def GetLocalPath(self): - """Look for a local file, and return its path. - - Looks for the first group which has at least one existing file path. Then - returns the most-recent of these files. - - Returns: - Local file path, if found, or None otherwise. - """ for priority_group in self._path_priority_groups: - priority_group = [g for g in priority_group if os.path.exists(g)] + priority_group = filter(os.path.exists, priority_group) if not priority_group: continue return max(priority_group, key=lambda path: os.stat(path).st_mtime) return None def IsPathInLocalPaths(self, path): - """Returns true if |path| is in one of this instance's file path lists.""" return any( path in priority_group for priority_group in self._path_priority_groups) def Update(self, local_path_info): - """Update this object from the content of another LocalPathInfo instance. - - Any file path from |local_path_info| that is not already contained in the - current instance will be added into new groups to it. - - Args: - local_path_info: Another LocalPathInfo instance, or None. - """ if not local_path_info: return for priority_group in local_path_info._path_priority_groups:
diff --git a/systrace/catapult/dependency_manager/dependency_manager/local_path_info_unittest.py b/systrace/catapult/dependency_manager/dependency_manager/local_path_info_unittest.py deleted file mode 100644 index 83921fa..0000000 --- a/systrace/catapult/dependency_manager/dependency_manager/local_path_info_unittest.py +++ /dev/null
@@ -1,136 +0,0 @@ -# Copyright 2018 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import os - -from pyfakefs import fake_filesystem_unittest - -import dependency_manager - -def _CreateFile(path): - """Create file at specific |path|, with specific |content|.""" - with open(path, 'wb') as f: - f.write('x') - - -def _ChangeFileTime(path, time0, days): - new_time = time0 + (days * 24 * 60 * 60) - os.utime(path, (new_time, new_time)) - - -class LocalPathInfoTest(fake_filesystem_unittest.TestCase): - - def setUp(self): - self.setUpPyfakefs() - - def tearDown(self): - self.tearDownPyfakefs() - - def testEmptyInstance(self): - path_info = dependency_manager.LocalPathInfo(None) - self.assertIsNone(path_info.GetLocalPath()) - self.assertFalse(path_info.IsPathInLocalPaths('file.txt')) - - def testSimpleGroupWithOnePath(self): - path_info = dependency_manager.LocalPathInfo(['file.txt']) - self.assertTrue(path_info.IsPathInLocalPaths('file.txt')) - self.assertFalse(path_info.IsPathInLocalPaths('other.txt')) - - # GetLocalPath returns None if the file doesn't exist. - # Otherwise it will return the file path. - self.assertIsNone(path_info.GetLocalPath()) - _CreateFile('file.txt') - self.assertEqual('file.txt', path_info.GetLocalPath()) - - def testSimpleGroupsWithMultiplePaths(self): - path_info = dependency_manager.LocalPathInfo( - [['file1', 'file2', 'file3']]) - self.assertTrue(path_info.IsPathInLocalPaths('file1')) - self.assertTrue(path_info.IsPathInLocalPaths('file2')) - self.assertTrue(path_info.IsPathInLocalPaths('file3')) - - _CreateFile('file1') - _CreateFile('file2') - _CreateFile('file3') - s = os.stat('file1') - time0 = s.st_mtime - - _ChangeFileTime('file1', time0, 4) - _ChangeFileTime('file2', time0, 2) - _ChangeFileTime('file3', time0, 0) - self.assertEqual('file1', path_info.GetLocalPath()) - - _ChangeFileTime('file1', time0, 0) - _ChangeFileTime('file2', time0, 4) - _ChangeFileTime('file3', time0, 2) - self.assertEqual('file2', path_info.GetLocalPath()) - - _ChangeFileTime('file1', time0, 2) - _ChangeFileTime('file2', time0, 0) - _ChangeFileTime('file3', time0, 4) - self.assertEqual('file3', path_info.GetLocalPath()) - - def testMultipleGroupsWithSinglePaths(self): - path_info = dependency_manager.LocalPathInfo( - ['file1', 'file2', 'file3']) - self.assertTrue(path_info.IsPathInLocalPaths('file1')) - self.assertTrue(path_info.IsPathInLocalPaths('file2')) - self.assertTrue(path_info.IsPathInLocalPaths('file3')) - - self.assertIsNone(path_info.GetLocalPath()) - _CreateFile('file3') - self.assertEqual('file3', path_info.GetLocalPath()) - _CreateFile('file2') - self.assertEqual('file2', path_info.GetLocalPath()) - _CreateFile('file1') - self.assertEqual('file1', path_info.GetLocalPath()) - - def testMultipleGroupsWithMultiplePaths(self): - path_info = dependency_manager.LocalPathInfo([ - ['file1', 'file2'], - ['file3', 'file4']]) - self.assertTrue(path_info.IsPathInLocalPaths('file1')) - self.assertTrue(path_info.IsPathInLocalPaths('file2')) - self.assertTrue(path_info.IsPathInLocalPaths('file3')) - self.assertTrue(path_info.IsPathInLocalPaths('file4')) - - _CreateFile('file1') - _CreateFile('file3') - s = os.stat('file1') - time0 = s.st_mtime - - # Check that file1 is always returned, even if it is not the most recent - # file, because it is part of the first group and exists. - _ChangeFileTime('file1', time0, 2) - _ChangeFileTime('file3', time0, 0) - self.assertEqual('file1', path_info.GetLocalPath()) - - _ChangeFileTime('file1', time0, 0) - _ChangeFileTime('file3', time0, 2) - self.assertEqual('file1', path_info.GetLocalPath()) - - def testUpdate(self): - path_info1 = dependency_manager.LocalPathInfo( - [['file1', 'file2']]) # One group with two files. - path_info2 = dependency_manager.LocalPathInfo( - ['file1', 'file2', 'file3']) # Three groups - self.assertTrue(path_info1.IsPathInLocalPaths('file1')) - self.assertTrue(path_info1.IsPathInLocalPaths('file2')) - self.assertFalse(path_info1.IsPathInLocalPaths('file3')) - - _CreateFile('file3') - self.assertIsNone(path_info1.GetLocalPath()) - - path_info1.Update(path_info2) - self.assertTrue(path_info1.IsPathInLocalPaths('file1')) - self.assertTrue(path_info1.IsPathInLocalPaths('file2')) - self.assertTrue(path_info1.IsPathInLocalPaths('file3')) - self.assertEqual('file3', path_info1.GetLocalPath()) - - _CreateFile('file1') - time0 = os.stat('file1').st_mtime - _ChangeFileTime('file3', time0, 2) # Make file3 more recent. - - # Check that file3 is in a later group. - self.assertEqual('file1', path_info1.GetLocalPath())
diff --git a/systrace/catapult/dependency_manager/dependency_manager/manager.py b/systrace/catapult/dependency_manager/dependency_manager/manager.py index 28fc532..7ebb46d 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/manager.py +++ b/systrace/catapult/dependency_manager/dependency_manager/manager.py
@@ -33,7 +33,7 @@ local files for the same platform will first look in those from config1, then those from config2, and finally those from config3. """ - if configs is None or not isinstance(configs, list): + if configs is None or type(configs) != list: raise ValueError( 'Must supply a list of config files to DependencyManager') # self._lookup_dict is a dictionary with the following format:
diff --git a/systrace/catapult/dependency_manager/dependency_manager/uploader.py b/systrace/catapult/dependency_manager/dependency_manager/uploader.py index d00d20c..e88b7c0 100644 --- a/systrace/catapult/dependency_manager/dependency_manager/uploader.py +++ b/systrace/catapult/dependency_manager/dependency_manager/uploader.py
@@ -100,7 +100,7 @@ return cloud_storage_changed def __eq__(self, other, msg=None): - if not isinstance(self, type(other)): + if type(self) != type(other): return False return (self._local_path == other._local_path and self._cs_remote_path == other._cs_remote_path and
diff --git a/systrace/catapult/devil/BUILD.gn b/systrace/catapult/devil/BUILD.gn deleted file mode 100644 index cf1255d..0000000 --- a/systrace/catapult/devil/BUILD.gn +++ /dev/null
@@ -1,32 +0,0 @@ -# Copyright 2017 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -group("devil") { - testonly = true - deps = [] - data_deps = [ - "../third_party/gsutil", - ] - data = [ - "devil/", - ] - - if (is_android) { - deps += [ - ":empty_system_webview_apk", - "//buildtools/third_party/libc++($host_toolchain)", - "//tools/android/forwarder2", - "//tools/android/md5sum", - ] - } -} - -if (is_android) { - import("//testing/android/empty_apk/empty_apk.gni") - - empty_apk("empty_system_webview_apk") { - package_name = "com.android.webview" - apk_name = "EmptySystemWebView" - } -}
diff --git a/systrace/catapult/devil/README.md b/systrace/catapult/devil/README.md index 9953e6a..852ac37 100644 --- a/systrace/catapult/devil/README.md +++ b/systrace/catapult/devil/README.md
@@ -6,8 +6,8 @@ 😈 -devil (device interaction layer) is a library used by the Chromium developers to -interact with Android devices. It currently supports SDK level 16 and above. +devil is a library used by the Chromium developers to interact with Android +devices. It currently supports SDK level 16 and above. ## Interfaces
diff --git a/systrace/catapult/devil/bin/run_py_tests b/systrace/catapult/devil/bin/run_py_tests index a74fa83..44ec61e 100755 --- a/systrace/catapult/devil/bin/run_py_tests +++ b/systrace/catapult/devil/bin/run_py_tests
@@ -16,12 +16,6 @@ def main(): - # Tests mock out internal details of methods, and the ANDROID_SERIAL can - # change which internal methods are called. Since tests don't actually use - # devices, it should be fine to delete the variable. - if 'ANDROID_SERIAL' in os.environ: - del os.environ['ANDROID_SERIAL'] - return run_with_typ.Run(top_level_dir=_DEVIL_PATH) if __name__ == '__main__':
diff --git a/systrace/catapult/devil/devil/android/apk_helper.py b/systrace/catapult/devil/devil/android/apk_helper.py index abdf907..8acb41e 100644 --- a/systrace/catapult/devil/devil/android/apk_helper.py +++ b/systrace/catapult/devil/devil/android/apk_helper.py
@@ -5,13 +5,9 @@ """Module containing utilities for apk packages.""" import re -import xml.etree.ElementTree -import zipfile from devil import base_error -from devil.android.ndk import abis from devil.android.sdk import aapt -from devil.utils import cmd_helper _MANIFEST_ATTRIBUTE_RE = re.compile( @@ -48,8 +44,9 @@ # matches the height of the stack). Each line parsed (either an attribute or an # element) is added to the node at the top of the stack (after the stack has # been popped/pushed due to indentation). -def _ParseManifestFromApk(apk): - aapt_output = aapt.Dump('xmltree', apk.path, 'AndroidManifest.xml') +def _ParseManifestFromApk(apk_path): + aapt_output = aapt.Dump('xmltree', apk_path, 'AndroidManifest.xml') + parsed_manifest = {} node_stack = [parsed_manifest] indent = ' ' @@ -98,8 +95,7 @@ manifest_key = m.group(1) if manifest_key in node: raise base_error.BaseError( - "A single attribute should have one key and one value: {}" - .format(line)) + "A single attribute should have one key and one value") else: node[manifest_key] = m.group(2) or m.group(3) continue @@ -107,47 +103,6 @@ return parsed_manifest -def _ParseManifestFromBundle(bundle): - cmd = [bundle.path, 'dump-manifest'] - status, stdout, stderr = cmd_helper.GetCmdStatusOutputAndError(cmd) - if status != 0: - raise Exception('Failed running {} with output\n{}\n{}'.format( - ' '.join(cmd), stdout, stderr)) - return ParseManifestFromXml(stdout) - - -def ParseManifestFromXml(xml_str): - """Parse an android bundle manifest. - - As ParseManifestFromAapt, but uses the xml output from bundletool. Each - element is a dict, mapping attribute or children by name. Attributes map to - a dict (as they are unique), children map to a list of dicts (as there may - be multiple children with the same name). - - Args: - xml_str (str) An xml string that is an android manifest. - - Returns: - A dict holding the parsed manifest, as with ParseManifestFromAapt. - """ - root = xml.etree.ElementTree.fromstring(xml_str) - return {root.tag: [_ParseManifestXMLNode(root)]} - - -def _ParseManifestXMLNode(node): - out = {} - for name, value in node.attrib.items(): - cleaned_name = name.replace( - '{http://schemas.android.com/apk/res/android}', - 'android:').replace( - '{http://schemas.android.com/tools}', - 'tools:') - out[cleaned_name] = value - for child in node: - out.setdefault(child.tag, []).append(_ParseManifestXMLNode(child)) - return out - - def _ParseNumericKey(obj, key, default=0): val = obj.get(key) if val is None: @@ -196,10 +151,6 @@ def path(self): return self._apk_path - @property - def is_bundle(self): - return self._apk_path.endswith('_bundle') - def GetActivityName(self): """Returns the name of the first launcher Activity in the apk.""" manifest_info = self._GetManifest() @@ -281,73 +232,9 @@ except KeyError: return [] - def GetVersionCode(self): - """Returns the versionCode as an integer, or None if not available.""" - manifest_info = self._GetManifest() - try: - version_code = manifest_info['manifest'][0]['android:versionCode'] - return int(version_code, 16) - except KeyError: - return None - - def GetVersionName(self): - """Returns the versionName as a string.""" - manifest_info = self._GetManifest() - try: - version_name = manifest_info['manifest'][0]['android:versionName'] - return version_name - except KeyError: - return '' - - def GetMinSdkVersion(self): - """Returns the minSdkVersion as a string, or None if not available. - - Note: this cannot always be cast to an integer.""" - manifest_info = self._GetManifest() - try: - uses_sdk = manifest_info['manifest'][0]['uses-sdk'][0] - min_sdk_version = uses_sdk['android:minSdkVersion'] - try: - # The common case is for this to be an integer. Convert to decimal - # notation (rather than hexadecimal) for readability, but convert back - # to a string for type consistency with the general case. - return str(int(min_sdk_version, 16)) - except ValueError: - # In general (ex. apps with minSdkVersion set to pre-release Android - # versions), minSdkVersion can be a string (usually, the OS codename - # letter). For simplicity, don't do any validation on the value. - return min_sdk_version - except KeyError: - return None - - def GetTargetSdkVersion(self): - """Returns the targetSdkVersion as a string, or None if not available. - - Note: this cannot always be cast to an integer.""" - manifest_info = self._GetManifest() - try: - uses_sdk = manifest_info['manifest'][0]['uses-sdk'][0] - target_sdk_version = uses_sdk['android:targetSdkVersion'] - try: - # The common case is for this to be an integer. Convert to decimal - # notation (rather than hexadecimal) for readability, but convert back - # to a string for type consistency with the general case. - return str(int(target_sdk_version, 16)) - except ValueError: - # In general (ex. apps targeting pre-release Android versions), - # targetSdkVersion can be a string (usually, the OS codename letter). - # For simplicity, don't do any validation on the value. - return target_sdk_version - except KeyError: - return None - def _GetManifest(self): if not self._manifest: - app = ToHelper(self._apk_path) - if app.is_bundle: - self._manifest = _ParseManifestFromBundle(app) - else: - self._manifest = _ParseManifestFromApk(app) + self._manifest = _ParseManifestFromApk(self._apk_path) return self._manifest def _ResolveName(self, name): @@ -355,30 +242,3 @@ if '.' not in name: return '%s.%s' % (self.GetPackageName(), name) return name - - def _ListApkPaths(self): - with zipfile.ZipFile(self._apk_path) as z: - return z.namelist() - - def GetAbis(self): - """Returns a list of ABIs in the apk (empty list if no native code).""" - # Use lib/* to determine the compatible ABIs. - libs = set() - for path in self._ListApkPaths(): - path_tokens = path.split('/') - if len(path_tokens) >= 2 and path_tokens[0] == 'lib': - libs.add(path_tokens[1]) - lib_to_abi = { - abis.ARM: [abis.ARM, abis.ARM_64], - abis.ARM_64: [abis.ARM_64], - abis.X86: [abis.X86, abis.X86_64], - abis.X86_64: [abis.X86_64] - } - try: - output = set() - for lib in libs: - for abi in lib_to_abi[lib]: - output.add(abi) - return sorted(output) - except KeyError: - raise base_error.BaseError('Unexpected ABI in lib/* folder.')
diff --git a/systrace/catapult/devil/devil/android/apk_helper_test.py b/systrace/catapult/devil/devil/android/apk_helper_test.py index 3258bb0..12137db 100755 --- a/systrace/catapult/devil/devil/android/apk_helper_test.py +++ b/systrace/catapult/devil/devil/android/apk_helper_test.py
@@ -3,30 +3,21 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import collections -import os import unittest from devil import base_error from devil import devil_env from devil.android import apk_helper -from devil.android.ndk import abis from devil.utils import mock_calls with devil_env.SysPath(devil_env.PYMOCK_PATH): import mock # pylint: disable=import-error -# pylint: disable=line-too-long _MANIFEST_DUMP = """N: android=http://schemas.android.com/apk/res/android E: manifest (line=1) - A: android:versionCode(0x0101021b)=(type 0x10)0x166de1ea - A: android:versionName(0x0101021c)="75.0.3763.0" (Raw: "75.0.3763.0") A: package="org.chromium.abc" (Raw: "org.chromium.abc") A: split="random_split" (Raw: "random_split") - E: uses-sdk (line=2) - A: android:minSdkVersion(0x0101020c)=(type 0x10)0x15 - A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c E: uses-permission (line=2) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=3) @@ -120,14 +111,6 @@ A: junit4=(type 0x12)0xffffffff (Raw: "true") """ -_TARGETING_PRE_RELEASE_Q_MANIFEST_DUMP = """N: android=http://schemas.android.com/apk/res/android - E: manifest (line=1) - A: package="org.chromium.xyz" (Raw: "org.chromium.xyz") - E: uses-sdk (line=2) - A: android:minSdkVersion(0x0101020c)="Q" (Raw: "Q") - A: android:targetSdkVersion(0x01010270)="Q" (Raw: "Q") -""" - _NO_NAMESPACE_MANIFEST_DUMP = """E: manifest (line=1) A: package="org.chromium.xyz" (Raw: "org.chromium.xyz") E: instrumentation (line=8) @@ -135,7 +118,6 @@ A: http://schemas.android.com/apk/res/android:name(0x01010003)="org.chromium.RandomTestRunner" (Raw: "org.chromium.RandomTestRunner") A: http://schemas.android.com/apk/res/android:targetPackage(0x01010021)="org.chromium.random_package" (Raw:"org.chromium.random_pacakge") """ -# pylint: enable=line-too-long def _MockAaptDump(manifest_dump): @@ -143,11 +125,6 @@ 'devil.android.sdk.aapt.Dump', mock.Mock(side_effect=None, return_value=manifest_dump.split('\n'))) -def _MockListApkPaths(files): - return mock.patch( - 'devil.android.apk_helper.ApkHelper._ListApkPaths', - mock.Mock(side_effect=None, return_value=files)) - class ApkHelperTest(mock_calls.TestCase): def testGetInstrumentationName(self): @@ -237,146 +214,12 @@ self.assertEquals([('name1', 'value1'), ('name2', 'value2')], helper.GetAllMetadata()) - def testGetVersionCode(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals(376300010, helper.GetVersionCode()) - - def testGetVersionName(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('75.0.3763.0', helper.GetVersionName()) - - def testGetMinSdkVersion_integerValue(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('21', helper.GetMinSdkVersion()) - - def testGetMinSdkVersion_stringValue(self): - with _MockAaptDump(_TARGETING_PRE_RELEASE_Q_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('Q', helper.GetMinSdkVersion()) - - def testGetTargetSdkVersion_integerValue(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('28', helper.GetTargetSdkVersion()) - - def testGetTargetSdkVersion_stringValue(self): - with _MockAaptDump(_TARGETING_PRE_RELEASE_Q_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('Q', helper.GetTargetSdkVersion()) - def testGetSingleInstrumentationName_strippedNamespaces(self): with _MockAaptDump(_NO_NAMESPACE_MANIFEST_DUMP): helper = apk_helper.ApkHelper('') self.assertEquals('org.chromium.RandomTestRunner', helper.GetInstrumentationName()) - def testGetArchitectures(self): - AbiPair = collections.namedtuple('AbiPair', ['abi32bit', 'abi64bit']) - for abi_pair in [AbiPair('lib/' + abis.ARM, 'lib/' + abis.ARM_64), - AbiPair('lib/' + abis.X86, 'lib/' + abis.X86_64)]: - with _MockListApkPaths([abi_pair.abi32bit]): - helper = apk_helper.ApkHelper('') - self.assertEquals(set([os.path.basename(abi_pair.abi32bit), - os.path.basename(abi_pair.abi64bit)]), - set(helper.GetAbis())) - with _MockListApkPaths([abi_pair.abi32bit, abi_pair.abi64bit]): - helper = apk_helper.ApkHelper('') - self.assertEquals(set([os.path.basename(abi_pair.abi32bit), - os.path.basename(abi_pair.abi64bit)]), - set(helper.GetAbis())) - with _MockListApkPaths([abi_pair.abi64bit]): - helper = apk_helper.ApkHelper('') - self.assertEquals(set([os.path.basename(abi_pair.abi64bit)]), - set(helper.GetAbis())) - - def testParseXmlManifest(self): - self.assertEquals({ - 'manifest': [ - {'android:compileSdkVersion': '28', - 'android:versionCode': '2', - 'uses-sdk': [ - {'android:minSdkVersion': '24', - 'android:targetSdkVersion': '28'}], - 'uses-permission': [ - {'android:name': - 'android.permission.ACCESS_COARSE_LOCATION'}, - {'android:name': - 'android.permission.ACCESS_NETWORK_STATE'}], - 'application': [ - {'android:allowBackup': 'true', - 'android:extractNativeLibs': 'false', - 'android:fullBackupOnly': 'false', - 'meta-data': [ - {'android:name': 'android.allow_multiple', - 'android:value': 'true'}, - {'android:name': 'multiwindow', - 'android:value': 'true'}], - 'activity': [ - {'android:configChanges': '0x00001fb3', - 'android:excludeFromRecents': 'true', - 'android:name': 'ChromeLauncherActivity', - 'intent-filter': [ - {'action': [ - {'android:name': 'dummy.action'}], - 'category': [ - {'android:name': 'DAYDREAM'}, - {'android:name': 'CARDBOARD'}]}]}, - {'android:enabled': 'false', - 'android:name': 'MediaLauncherActivity', - 'intent-filter': [ - {'tools:ignore': 'AppLinkUrlError', - 'action': [{'android:name': 'VIEW'}], - 'category': [{'android:name': 'DEFAULT'}], - 'data': [ - {'android:mimeType': 'audio/*'}, - {'android:mimeType': 'image/*'}, - {'android:mimeType': 'video/*'}, - {'android:scheme': 'file'}, - {'android:scheme': 'content'}]}]}]}]}]}, - apk_helper.ParseManifestFromXml(""" - <manifest xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:compileSdkVersion="28" android:versionCode="2"> - <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="28"/> - <uses-permission - android:name="android.permission.ACCESS_COARSE_LOCATION"/> - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> - <application android:allowBackup="true" - android:extractNativeLibs="false" - android:fullBackupOnly="false"> - <meta-data android:name="android.allow_multiple" - android:value="true"/> - <meta-data android:name="multiwindow" - android:value="true"/> - <activity android:configChanges="0x00001fb3" - android:excludeFromRecents="true" - android:name="ChromeLauncherActivity"> - <intent-filter> - <action android:name="dummy.action"/> - <category android:name="DAYDREAM"/> - <category android:name="CARDBOARD"/> - </intent-filter> - </activity> - <activity android:enabled="false" - android:name="MediaLauncherActivity"> - <intent-filter tools:ignore="AppLinkUrlError"> - <action android:name="VIEW"/> - - <category android:name="DEFAULT"/> - - <data android:mimeType="audio/*"/> - <data android:mimeType="image/*"/> - <data android:mimeType="video/*"/> - <data android:scheme="file"/> - <data android:scheme="content"/> - </intent-filter> - </activity> - </application> - </manifest>""")) - if __name__ == '__main__': unittest.main(verbosity=2)
diff --git a/systrace/catapult/devil/devil/android/battery_utils.py b/systrace/catapult/devil/devil/android/battery_utils.py index c41c19a..a8a08a9 100644 --- a/systrace/catapult/devil/devil/android/battery_utils.py +++ b/systrace/catapult/devil/devil/android/battery_utils.py
@@ -11,7 +11,6 @@ import csv import logging -from devil.android import crash_handler from devil.android import decorators from devil.android import device_errors from devil.android import device_utils @@ -241,6 +240,44 @@ 'Unable to find fuel gauge.') @decorators.WithTimeoutAndRetriesFromInstance() + def GetNetworkData(self, package, timeout=None, retries=None): + """Get network data for specific package. + + Args: + package: package name you want network data for. + timeout: timeout in seconds + retries: number of retries + + Returns: + Tuple of (sent_data, recieved_data) + None if no network data found + """ + # If device_utils clears cache, cache['uids'] doesn't exist + if 'uids' not in self._cache: + self._cache['uids'] = {} + if package not in self._cache['uids']: + self.GetPowerData() + if package not in self._cache['uids']: + logger.warning('No UID found for %s. Can\'t get network data.', + package) + return None + + network_data_path = '/proc/uid_stat/%s/' % self._cache['uids'][package] + try: + send_data = int(self._device.ReadFile(network_data_path + 'tcp_snd')) + # If ReadFile throws exception, it means no network data usage file for + # package has been recorded. Return 0 sent and 0 received. + except device_errors.AdbShellCommandFailedError: + logger.warning('No sent data found for package %s', package) + send_data = 0 + try: + recv_data = int(self._device.ReadFile(network_data_path + 'tcp_rcv')) + except device_errors.AdbShellCommandFailedError: + logger.warning('No received data found for package %s', package) + recv_data = 0 + return (send_data, recv_data) + + @decorators.WithTimeoutAndRetriesFromInstance() def GetPowerData(self, timeout=None, retries=None): """Get power data for device. @@ -337,12 +374,7 @@ Returns: True if the device is charging, false otherwise. """ - # Wrapper function so that we can use `RetryOnSystemCrash`. - def GetBatteryInfoHelper(device): - return self.GetBatteryInfo() - - battery_info = crash_handler.RetryOnSystemCrash( - GetBatteryInfoHelper, self._device) + battery_info = self.GetBatteryInfo() for k in ('AC powered', 'USB powered', 'Wireless powered'): if (k in battery_info and battery_info[k].lower() in ('true', '1', 'yes')):
diff --git a/systrace/catapult/devil/devil/android/battery_utils_test.py b/systrace/catapult/devil/devil/android/battery_utils_test.py index 07c7496..feccf79 100755 --- a/systrace/catapult/devil/devil/android/battery_utils_test.py +++ b/systrace/catapult/devil/devil/android/battery_utils_test.py
@@ -401,6 +401,57 @@ self.assertFalse(self.battery.GetCharging()) +class BatteryUtilsGetNetworkDataTest(BatteryUtilsTest): + + def testGetNetworkData_noDataUsage(self): + with self.assertCalls( + (self.call.device.RunShellCommand( + ['dumpsys', 'batterystats', '-c'], + check_return=True, large_output=True), + _DUMPSYS_OUTPUT), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_snd'), + self.ShellError()), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_rcv'), + self.ShellError())): + self.assertEquals(self.battery.GetNetworkData('test_package1'), (0, 0)) + + def testGetNetworkData_badPackage(self): + with self.assertCall( + self.call.device.RunShellCommand( + ['dumpsys', 'batterystats', '-c'], + check_return=True, large_output=True), + _DUMPSYS_OUTPUT): + self.assertEqual(self.battery.GetNetworkData('asdf'), None) + + def testGetNetworkData_packageNotCached(self): + with self.assertCalls( + (self.call.device.RunShellCommand( + ['dumpsys', 'batterystats', '-c'], + check_return=True, large_output=True), + _DUMPSYS_OUTPUT), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_snd'), 1), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_rcv'), 2)): + self.assertEqual(self.battery.GetNetworkData('test_package1'), (1, 2)) + + def testGetNetworkData_packageCached(self): + self.battery._cache['uids'] = {'test_package1': '1000'} + with self.assertCalls( + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_snd'), 1), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_rcv'), 2)): + self.assertEqual(self.battery.GetNetworkData('test_package1'), (1, 2)) + + def testGetNetworkData_clearedCache(self): + with self.assertCalls( + (self.call.device.RunShellCommand( + ['dumpsys', 'batterystats', '-c'], + check_return=True, large_output=True), + _DUMPSYS_OUTPUT), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_snd'), 1), + (self.call.device.ReadFile('/proc/uid_stat/1000/tcp_rcv'), 2)): + self.battery._cache.clear() + self.assertEqual(self.battery.GetNetworkData('test_package1'), (1, 2)) + + class BatteryUtilsLetBatteryCoolToTemperatureTest(BatteryUtilsTest): @mock.patch('time.sleep', mock.Mock())
diff --git a/systrace/catapult/devil/devil/android/cpu_temperature.py b/systrace/catapult/devil/devil/android/cpu_temperature.py deleted file mode 100644 index 58ce87a..0000000 --- a/systrace/catapult/devil/devil/android/cpu_temperature.py +++ /dev/null
@@ -1,154 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -"""Provides device interactions for CPU temperature monitoring.""" -# pylint: disable=unused-argument - -import logging - -from devil.android import device_utils -from devil.android.perf import perf_control -from devil.utils import timeout_retry - -logger = logging.getLogger(__name__) - -# NB: when adding devices to this structure, be aware of the impact it may -# have on the chromium.perf waterfall, as it may increase testing time. -# Please contact a person responsible for the waterfall to see if the -# device you're adding is currently being tested. -_DEVICE_THERMAL_INFORMATION = { - # Pixel 3 - 'blueline': { - 'cpu_temps': { - # See /sys/class/thermal/thermal_zone<number>/type for description - # Types: - # cpu0: cpu0-silver-step - # cpu1: cpu1-silver-step - # cpu2: cpu2-silver-step - # cpu3: cpu3-silver-step - # cpu4: cpu0-gold-step - # cpu5: cpu1-gold-step - # cpu6: cpu2-gold-step - # cpu7: cpu3-gold-step - 'cpu0': '/sys/class/thermal/thermal_zone11/temp', - 'cpu1': '/sys/class/thermal/thermal_zone12/temp', - 'cpu2': '/sys/class/thermal/thermal_zone13/temp', - 'cpu3': '/sys/class/thermal/thermal_zone14/temp', - 'cpu4': '/sys/class/thermal/thermal_zone15/temp', - 'cpu5': '/sys/class/thermal/thermal_zone16/temp', - 'cpu6': '/sys/class/thermal/thermal_zone17/temp', - 'cpu7': '/sys/class/thermal/thermal_zone18/temp' - }, - # Different device sensors use different multipliers - # e.g. Pixel 3 35 degrees c is 35000 - 'temp_multiplier': 1000 - }, - # Pixel - 'sailfish': { - 'cpu_temps': { - # The following thermal zones tend to produce the most accurate - # readings - # Types: - # cpu0: tsens_tz_sensor0 - # cpu1: tsens_tz_sensor1 - # cpu2: tsens_tz_sensor2 - # cpu3: tsens_tz_sensor3 - 'cpu0': '/sys/class/thermal/thermal_zone1/temp', - 'cpu1': '/sys/class/thermal/thermal_zone2/temp', - 'cpu2': '/sys/class/thermal/thermal_zone3/temp', - 'cpu3': '/sys/class/thermal/thermal_zone4/temp' - }, - 'temp_multiplier': 10 - } -} - - -class CpuTemperature(object): - - def __init__(self, device): - """CpuTemperature constructor. - - Args: - device: A DeviceUtils instance. - Raises: - TypeError: If it is not passed a DeviceUtils instance. - """ - if not isinstance(device, device_utils.DeviceUtils): - raise TypeError('Must be initialized with DeviceUtils object.') - self._device = device - self._perf_control = perf_control.PerfControl(self._device) - self._device_info = None - - def InitThermalDeviceInformation(self): - """Init the current devices thermal information. - """ - self._device_info = _DEVICE_THERMAL_INFORMATION.get( - self._device.build_product) - - def IsSupported(self): - """Check if the current device is supported. - - Returns: - True if the device is in _DEVICE_THERMAL_INFORMATION and the temp - files exist. False otherwise. - """ - # Init device info if it hasnt been manually initialised already - if self._device_info is None: - self.InitThermalDeviceInformation() - - if self._device_info is not None: - return all( - self._device.FileExists(f) - for f in self._device_info['cpu_temps'].values()) - return False - - def LetCpuCoolToTemperature(self, target_temp, wait_period=30): - """Lets device sit to give CPU time to cool down. - - Implements a similar mechanism to - battery_utils.LetBatteryCoolToTemperature - - Args: - temp: A float containing the maximum temperature to allow - in degrees c. - wait_period: An integer indicating time in seconds to wait - between checking. - """ - target_temp = int(target_temp * self._device_info['temp_multiplier']) - - def cool_cpu(): - # Get the temperatures - cpu_temp_paths = self._device_info['cpu_temps'] - temps = [] - for temp_path in cpu_temp_paths.values(): - temp_return = self._device.ReadFile(temp_path) - # Output is an array of strings, only need the first line. - temps.append(int(temp_return)) - - if not temps: - logger.warning('Unable to read temperature files provided.') - return True - - logger.info('Current CPU temperatures: %s', str(temps)[1:-1]) - - return all(t <= target_temp for t in temps) - - logger.info('Waiting for the CPU to cool down to %s', - target_temp / self._device_info['temp_multiplier']) - - # Set the governor to powersave to aid the cooling down of the CPU - self._perf_control.SetScalingGovernor('powersave') - - # Retry 3 times, each time waiting 30 seconds. - # This negates most (if not all) of the noise in recorded results without - # taking too long - timeout_retry.WaitFor(cool_cpu, wait_period=wait_period, max_tries=3) - - # Set the performance mode - self._perf_control.SetHighPerfMode() - - def GetDeviceForTesting(self): - return self._device - - def GetDeviceInfoForTesting(self): - return self._device_info
diff --git a/systrace/catapult/devil/devil/android/cpu_temperature_test.py b/systrace/catapult/devil/devil/android/cpu_temperature_test.py deleted file mode 100644 index f0f99de..0000000 --- a/systrace/catapult/devil/devil/android/cpu_temperature_test.py +++ /dev/null
@@ -1,132 +0,0 @@ -#!/usr/bin/env python -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -""" -Unit tests for the contents of cpu_temperature.py -""" - -# pylint: disable=unused-argument - -import logging -import unittest - -from devil import devil_env -from devil.android import cpu_temperature -from devil.android import device_utils -from devil.utils import mock_calls -from devil.android.sdk import adb_wrapper - -with devil_env.SysPath(devil_env.PYMOCK_PATH): - import mock # pylint: disable=import-error - - -class CpuTemperatureTest(mock_calls.TestCase): - - @mock.patch('devil.android.perf.perf_control.PerfControl', mock.Mock()) - def setUp(self): - # Mock the device - self.mock_device = mock.Mock(spec=device_utils.DeviceUtils) - self.mock_device.build_product = 'blueline' - self.mock_device.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) - self.mock_device.FileExists.return_value = True - - self.cpu_temp = cpu_temperature.CpuTemperature(self.mock_device) - self.cpu_temp.InitThermalDeviceInformation() - - -class CpuTemperatureInitTest(unittest.TestCase): - - @mock.patch('devil.android.perf.perf_control.PerfControl', mock.Mock()) - def testInitWithDeviceUtil(self): - d = mock.Mock(spec=device_utils.DeviceUtils) - d.build_product = 'blueline' - c = cpu_temperature.CpuTemperature(d) - self.assertEqual(d, c.GetDeviceForTesting()) - - def testInitWithMissing_fails(self): - with self.assertRaises(TypeError): - cpu_temperature.CpuTemperature(None) - with self.assertRaises(TypeError): - cpu_temperature.CpuTemperature('') - - -class CpuTemperatureGetThermalDeviceInformationTest(CpuTemperatureTest): - - @mock.patch('devil.android.perf.perf_control.PerfControl', mock.Mock()) - def testGetThermalDeviceInformation_noneWhenIncorrectLabel(self): - invalid_device = mock.Mock(spec=device_utils.DeviceUtils) - invalid_device.build_product = 'invalid_name' - c = cpu_temperature.CpuTemperature(invalid_device) - c.InitThermalDeviceInformation() - self.assertEqual(c.GetDeviceInfoForTesting(), None) - - def testGetThermalDeviceInformation_getsCorrectInformation(self): - correct_information = { - 'cpu0': '/sys/class/thermal/thermal_zone11/temp', - 'cpu1': '/sys/class/thermal/thermal_zone12/temp', - 'cpu2': '/sys/class/thermal/thermal_zone13/temp', - 'cpu3': '/sys/class/thermal/thermal_zone14/temp', - 'cpu4': '/sys/class/thermal/thermal_zone15/temp', - 'cpu5': '/sys/class/thermal/thermal_zone16/temp', - 'cpu6': '/sys/class/thermal/thermal_zone17/temp', - 'cpu7': '/sys/class/thermal/thermal_zone18/temp' - } - self.assertEqual( - cmp(correct_information, - self.cpu_temp.GetDeviceInfoForTesting().get('cpu_temps')), 0) - - -class CpuTemperatureIsSupportedTest(CpuTemperatureTest): - - @mock.patch('devil.android.perf.perf_control.PerfControl', mock.Mock()) - def testIsSupported_returnsTrue(self): - d = mock.Mock(spec=device_utils.DeviceUtils) - d.build_product = 'blueline' - d.FileExists.return_value = True - c = cpu_temperature.CpuTemperature(d) - self.assertTrue(c.IsSupported()) - - @mock.patch('devil.android.perf.perf_control.PerfControl', mock.Mock()) - def testIsSupported_returnsFalse(self): - d = mock.Mock(spec=device_utils.DeviceUtils) - d.build_product = 'blueline' - d.FileExists.return_value = False - c = cpu_temperature.CpuTemperature(d) - self.assertFalse(c.IsSupported()) - - -class CpuTemperatureLetCpuCoolToTemperatureTest(CpuTemperatureTest): - # Return values for the mock side effect - cooling_down0 = ([45000 for _ in range(8)] + [43000 for _ in range(8)] + - [41000 for _ in range(8)]) - - @mock.patch('time.sleep', mock.Mock()) - def testLetBatteryCoolToTemperature_coolWithin24Calls(self): - self.mock_device.ReadFile = mock.Mock(side_effect=self.cooling_down0) - self.cpu_temp.LetCpuCoolToTemperature(42) - self.mock_device.ReadFile.assert_called() - self.assertEquals(self.mock_device.ReadFile.call_count, 24) - - cooling_down1 = [45000 for _ in range(8)] + [41000 for _ in range(16)] - - @mock.patch('time.sleep', mock.Mock()) - def testLetBatteryCoolToTemperature_coolWithin16Calls(self): - self.mock_device.ReadFile = mock.Mock(side_effect=self.cooling_down1) - self.cpu_temp.LetCpuCoolToTemperature(42) - self.mock_device.ReadFile.assert_called() - self.assertEquals(self.mock_device.ReadFile.call_count, 16) - - constant_temp = [45000 for _ in range(40)] - - @mock.patch('time.sleep', mock.Mock()) - def testLetBatteryCoolToTemperature_timeoutAfterThree(self): - self.mock_device.ReadFile = mock.Mock(side_effect=self.constant_temp) - self.cpu_temp.LetCpuCoolToTemperature(42) - self.mock_device.ReadFile.assert_called() - self.assertEquals(self.mock_device.ReadFile.call_count, 24) - - -if __name__ == '__main__': - logging.getLogger().setLevel(logging.DEBUG) - unittest.main(verbosity=2)
diff --git a/systrace/catapult/devil/devil/android/crash_handler.py b/systrace/catapult/devil/devil/android/crash_handler.py index 028e787..7cfabcf 100644 --- a/systrace/catapult/devil/devil/android/crash_handler.py +++ b/systrace/catapult/devil/devil/android/crash_handler.py
@@ -37,9 +37,6 @@ raise try: logger.warning('Device is unreachable. Waiting for recovery...') - # Treat the device being unreachable as an unexpected reboot and clear - # any cached state. - device.ClearCache() device.WaitUntilFullyBooted() except base_error.BaseError: logger.exception('Device never recovered. X(')
diff --git a/systrace/catapult/devil/devil/android/decorators.py b/systrace/catapult/devil/devil/android/decorators.py index 93e1054..3844b49 100644 --- a/systrace/catapult/devil/devil/android/decorators.py +++ b/systrace/catapult/devil/devil/android/decorators.py
@@ -59,7 +59,7 @@ raise device_errors.CommandTimeoutError(str(e)), None, ( sys.exc_info()[2]) except cmd_helper.TimeoutError as e: - raise device_errors.CommandTimeoutError(str(e), output=e.output), None, ( + raise device_errors.CommandTimeoutError(str(e)), None, ( sys.exc_info()[2]) return timeout_retry_wrapper
diff --git a/systrace/catapult/devil/devil/android/device_errors.py b/systrace/catapult/devil/devil/android/device_errors.py index e6893a4..57f3615 100644 --- a/systrace/catapult/devil/devil/android/device_errors.py +++ b/systrace/catapult/devil/devil/android/device_errors.py
@@ -55,15 +55,15 @@ self.status = status if not message: adb_cmd = ' '.join(cmd_helper.SingleQuote(arg) for arg in self.args) - segments = ['adb %s: failed ' % adb_cmd] + message = ['adb %s: failed ' % adb_cmd] if status: - segments.append('with exit status %s ' % self.status) + message.append('with exit status %s ' % self.status) if output: - segments.append('and output:\n') - segments.extend('- %s\n' % line for line in output.splitlines()) + message.append('and output:\n') + message.extend('- %s\n' % line for line in output.splitlines()) else: - segments.append('and no output.') - message = ''.join(segments) + message.append('and no output.') + message = ''.join(message) super(_BaseCommandFailedError, self).__init__(message, device_serial) def __eq__(self, other): @@ -79,7 +79,8 @@ """Support pickling.""" result = [None, None, None, None, None] super_result = super(_BaseCommandFailedError, self).__reduce__() - result[:len(super_result)] = super_result + for i in range(len(super_result)): + result[i] = super_result[i] # Update the args used to reconstruct this exception. result[1] = ( @@ -119,19 +120,19 @@ def __init__(self, command, output, status, device_serial=None): self.command = command - segments = ['shell command run via adb failed on the device:\n', + message = ['shell command run via adb failed on the device:\n', ' command: %s\n' % command] - segments.append(' exit status: %s\n' % status) + message.append(' exit status: %s\n' % status) if output: - segments.append(' output:\n') + message.append(' output:\n') if isinstance(output, basestring): output_lines = output.splitlines() else: output_lines = output - segments.extend(' - %s\n' % line for line in output_lines) + message.extend(' - %s\n' % line for line in output_lines) else: - segments.append(" output: ''\n") - message = ''.join(segments) + message.append(" output: ''\n") + message = ''.join(message) super(AdbShellCommandFailedError, self).__init__( ['shell', command], output, status, device_serial, message) @@ -139,7 +140,8 @@ """Support pickling.""" result = [None, None, None, None, None] super_result = super(AdbShellCommandFailedError, self).__reduce__() - result[:len(super_result)] = super_result + for i in range(len(super_result)): + result[i] = super_result[i] # Update the args used to reconstruct this exception. result[1] = (self.command, self.output, self.status, self.device_serial) @@ -148,9 +150,7 @@ class CommandTimeoutError(base_error.BaseError): """Exception for command timeouts.""" - def __init__(self, message, is_infra_error=False, output=None): - super(CommandTimeoutError, self).__init__(message, is_infra_error) - self.output = output + pass class DeviceUnreachableError(base_error.BaseError):
diff --git a/systrace/catapult/devil/devil/android/device_utils.py b/systrace/catapult/devil/devil/android/device_utils.py index 6182a52..5a3db41 100644 --- a/systrace/catapult/devil/devil/android/device_utils.py +++ b/systrace/catapult/devil/devil/android/device_utils.py
@@ -10,11 +10,9 @@ import calendar import collections -import contextlib import fnmatch import json import logging -import math import os import posixpath import pprint @@ -22,7 +20,6 @@ import re import shutil import stat -import sys import tempfile import time import threading @@ -52,12 +49,6 @@ from py_utils import tempfile_ext -try: - from devil.utils import reset_usb -except ImportError: - # Fail silently if we can't import reset_usb. We're likely on windows. - reset_usb = None - logger = logging.getLogger(__name__) _DEFAULT_TIMEOUT = 30 @@ -68,29 +59,6 @@ # the timeout_retry decorators. DEFAULT = object() -# A sentinel object to require that calls to RunShellCommand force running the -# command with su even if the device has been rooted. To use, pass into the -# as_root param. -_FORCE_SU = object() - -_RECURSIVE_DIRECTORY_LIST_SCRIPT = """ - function list_subdirs() { - for f in "$1"/* ; - do - if [ -d "$f" ] ; - then - if [ "$f" == "." ] || [ "$f" == ".." ] ; - then - continue ; - fi ; - echo "$f" ; - list_subdirs "$f" ; - fi ; - done ; - } ; - list_subdirs %s -""" - _RESTART_ADBD_SCRIPT = """ trap '' HUP trap '' TERM @@ -120,7 +88,6 @@ 'android.permission.DISABLE_KEYGUARD', 'android.permission.DOWNLOAD_WITHOUT_NOTIFICATION', 'android.permission.EXPAND_STATUS_BAR', - 'android.permission.FOREGROUND_SERVICE', 'android.permission.GET_PACKAGE_SIZE', 'android.permission.INSTALL_SHORTCUT', 'android.permission.INJECT_EVENTS', @@ -218,14 +185,8 @@ 'marlin', # Pixel XL 'sailfish', # Pixel 'taimen', # Pixel 2 XL - 'vega', # Lenovo Mirage Solo 'walleye', # Pixel 2 - 'crosshatch', # Pixel 3 XL - 'blueline', # Pixel 3 ] -_SPECIAL_ROOT_DEVICE_LIST += ['aosp_%s' % _d for _d in - _SPECIAL_ROOT_DEVICE_LIST] - _IMEI_RE = re.compile(r' Device ID = (.+)$') # The following regex is used to match result parcels like: """ @@ -239,25 +200,6 @@ _EBUSY_RE = re.compile( r'mkdir failed for ([^,]*), Device or resource busy') -# http://bit.ly/2WLZhUF added a timeout to adb wait-for-device. We sometimes -# want to wait longer than the implicit call within adb root allows. -_WAIT_FOR_DEVICE_TIMEOUT_STR = 'timeout expired while waiting for device' - -_WEBVIEW_SYSUPDATE_CURRENT_PKG_RE = re.compile( - r'Current WebView package.*:.*\(([a-z.]*),') -_WEBVIEW_SYSUPDATE_NULL_PKG_RE = re.compile( - r'Current WebView package is null') -_WEBVIEW_SYSUPDATE_FALLBACK_LOGIC_RE = re.compile( - r'Fallback logic enabled: (true|false)') -_WEBVIEW_SYSUPDATE_PACKAGE_INSTALLED_RE = re.compile( - r'(?:Valid|Invalid) package\s+(\S+)\s+\(.*\),?\s+(.*)$') -_WEBVIEW_SYSUPDATE_PACKAGE_NOT_INSTALLED_RE = re.compile( - r'(\S+)\s+(is NOT installed\.)') -_WEBVIEW_SYSUPDATE_MIN_VERSION_CODE = re.compile( - r'Minimum WebView version code: (\d+)') - -_GOOGLE_FEATURES_RE = re.compile(r'^\s*com\.google\.') - PS_COLUMNS = ('name', 'pid', 'ppid') ProcessInfo = collections.namedtuple('ProcessInfo', PS_COLUMNS) @@ -401,7 +343,7 @@ assert hasattr(self, decorators.DEFAULT_TIMEOUT_ATTR) assert hasattr(self, decorators.DEFAULT_RETRIES_ATTR) - self.ClearCache() + self._ClearCache() @property def serial(self): @@ -459,20 +401,6 @@ def HasRoot(self, timeout=None, retries=None): """Checks whether or not adbd has root privileges. - A device is considered to have root if all commands are implicitly run - with elevated privileges, i.e. without having to use "su" to run them. - - Note that some devices do not allow this implicit privilige elevation, - but _can_ run commands as root just fine when done explicitly with "su". - To check if your device can run commands with elevated privileges at all - use: - - device.HasRoot() or device.NeedsSU() - - Luckily, for the most part you don't need to worry about this and using - RunShellCommand(cmd, as_root=True) will figure out for you the right - command incantation to run with elevated privileges. - Args: timeout: timeout in seconds retries: number of retries @@ -485,10 +413,6 @@ DeviceUnreachableError on missing device. """ try: - if self.build_type == 'eng': - # 'eng' builds have root enabled by default and the adb session cannot - # be unrooted. - return True if self.product_name in _SPECIAL_ROOT_DEVICE_LIST: return self.GetProp('service.adb.root') == '1' self.RunShellCommand(['ls', '/root'], check_return=True) @@ -552,22 +476,17 @@ try: self.adb.Root() - except device_errors.AdbCommandFailedError as e: + except device_errors.AdbCommandFailedError: if self.IsUserBuild(): raise device_errors.CommandFailedError( 'Unable to root device with user build.', str(self)) - elif e.output and _WAIT_FOR_DEVICE_TIMEOUT_STR in e.output: - # adb 1.0.41 added a call to wait-for-device *inside* root - # with a timeout that can be too short in some cases. - # If we hit that timeout, ignore it & do our own wait below. - pass else: raise # Failed probably due to some other reason. def device_online_with_root(): try: self.adb.WaitForDevice() - return self.HasRoot() + return self.GetProp('service.adb.root', cache=False) == '1' except (device_errors.AdbCommandFailedError, device_errors.DeviceUnreachableError): return False @@ -730,22 +649,6 @@ 'Version name for %s not found on dumpsys output' % package, str(self)) @decorators.WithTimeoutAndRetriesFromInstance() - def GetPackageArchitecture(self, package, timeout=None, retries=None): - """Get the architecture of a package installed on the device. - - Args: - package: Name of the package. - - Returns: - A string with the architecture, or None if the package is missing. - """ - lines = self._GetDumpsysOutput(['package', package], 'primaryCpuAbi') - if lines: - _, _, package_arch = lines[-1].partition('=') - return package_arch.strip() - return None - - @decorators.WithTimeoutAndRetriesFromInstance() def GetApplicationDataDirectory(self, package, timeout=None, retries=None): """Get the data directory on the device for the given package. @@ -767,31 +670,6 @@ raise device_errors.CommandFailedError( 'Could not find data directory for %s', package) - @decorators.WithTimeoutAndRetriesFromInstance() - def GetSecurityContextForPackage(self, package, encrypted=False, timeout=None, - retries=None): - """Gets the SELinux security context for the given package. - - Args: - package: Name of the package. - encrypted: Whether to check in the encrypted data directory - (/data/user_de/0/) or the unencrypted data directory (/data/data/). - - Returns: - The package's security context as a string, or None if not found. - """ - directory = '/data/user_de/0/' if encrypted else '/data/data/' - for line in self.RunShellCommand(['ls', '-Z', directory], - as_root=True, check_return=True): - split_line = line.split() - # ls -Z output differs between Android versions, but the package is - # always last and the context always starts with "u:object" - if split_line[-1] == package: - for column in split_line: - if column.startswith('u:object'): - return column - return None - def TakeBugReport(self, path, timeout=60*5, retries=None): """Takes a bug report and dumps it to the specified path. @@ -882,35 +760,29 @@ return not self.IsOnline() self.adb.Reboot() - self.ClearCache() + self._ClearCache() timeout_retry.WaitFor(device_offline, wait_period=1) if block: self.WaitUntilFullyBooted(wifi=wifi) - INSTALL_DEFAULT_TIMEOUT = 8 * _DEFAULT_TIMEOUT + INSTALL_DEFAULT_TIMEOUT = 4 * _DEFAULT_TIMEOUT @decorators.WithTimeoutAndRetriesFromInstance( min_default_timeout=INSTALL_DEFAULT_TIMEOUT) def Install(self, apk, allow_downgrade=False, reinstall=False, - permissions=None, timeout=None, retries=None, modules=None): - """Install an APK or app bundle. + permissions=None, timeout=None, retries=None): + """Install an APK. - Noop if an identical APK is already installed. If installing a bundle, the - bundletools helper script (bin/*_bundle) should be used rather than the .aab - file. + Noop if an identical APK is already installed. Args: - apk: An ApkHelper instance or string containing the path to the APK or - bundle. + apk: An ApkHelper instance or string containing the path to the APK. allow_downgrade: A boolean indicating if we should allow downgrades. reinstall: A boolean indicating if we should keep any existing app data. - Ignored if |apk| is a bundle. permissions: Set of permissions to set. If not set, finds permissions with apk helper. To set no permissions, pass []. timeout: timeout in seconds retries: number of retries - modules: An iterable containing specific bundle modules to install. - Error if set and |apk| points to an APK instead of a bundle. Raises: CommandFailedError if the installation fails. @@ -918,8 +790,7 @@ DeviceUnreachableError on missing device. """ self._InstallInternal(apk, None, allow_downgrade=allow_downgrade, - reinstall=reinstall, permissions=permissions, - modules=modules) + reinstall=reinstall, permissions=permissions) @decorators.WithTimeoutAndRetriesFromInstance( min_default_timeout=INSTALL_DEFAULT_TIMEOUT) @@ -955,29 +826,12 @@ def _InstallInternal(self, base_apk, split_apks, allow_downgrade=False, reinstall=False, allow_cached_props=False, - permissions=None, modules=None): - base_apk = apk_helper.ToHelper(base_apk) - if base_apk.is_bundle: - if split_apks: - raise device_errors.CommandFailedError( - 'Attempted to install a bundle {} while specifying split apks' - .format(base_apk)) - if allow_downgrade: - logging.warning('Installation of a bundle requested with ' - 'allow_downgrade=False. This is not possible with ' - 'bundletools, no downgrading is possible. This ' - 'flag will be ignored and installation will proceed.') - # |allow_cached_props| is unused and ignored for bundles. - self._InstallBundleInternal(base_apk, permissions, modules) - return - - if modules: - raise device_errors.CommandFailedError( - 'Attempted to specify modules to install when providing an APK') - + permissions=None): if split_apks: self._CheckSdkLevel(version_codes.LOLLIPOP) + base_apk = apk_helper.ToHelper(base_apk) + all_apks = [base_apk.path] if split_apks: all_apks += split_select.SelectSplits( @@ -1014,11 +868,9 @@ logger.warning('Error calculating md5: %s', e) apks_to_install, host_checksums = all_apks, None if apks_to_install and not reinstall: + self.Uninstall(package_name) apks_to_install = all_apks - if device_apk_paths and apks_to_install and not reinstall: - self.Uninstall(package_name) - if apks_to_install: # Assume that we won't know the resulting device state. self._cache['package_apk_paths'].pop(package_name, 0) @@ -1044,20 +896,6 @@ if host_checksums is not None: self._cache['package_apk_checksums'][package_name] = host_checksums - def _InstallBundleInternal(self, bundle, permissions, modules): - cmd = [bundle.path, 'install', '--device', self.serial] - if modules: - for m in modules: - cmd.extend(['-m', m]) - status = cmd_helper.RunCmd(cmd) - if status != 0: - raise device_errors.CommandFailedError('Cound not install {}'.format( - bundle.path)) - if (permissions is None - and self.build_version_sdk >= version_codes.MARSHMALLOW): - permissions = bundle.GetPermissions() - self.GrantPermissions(bundle.GetPackageName(), permissions) - @decorators.WithTimeoutAndRetriesFromInstance() def Uninstall(self, package_name, keep_data=False, timeout=None, retries=None): @@ -1079,11 +917,15 @@ installed = self._GetApplicationPathsInternal(package_name) if not installed: return - # cached package paths are indeterminate due to system apps taking over - # user apps after uninstall, so clear it - self._cache['package_apk_paths'].pop(package_name, 0) - self._cache['package_apk_checksums'].pop(package_name, 0) - self.adb.Uninstall(package_name, keep_data) + try: + self.adb.Uninstall(package_name, keep_data) + self._cache['package_apk_paths'][package_name] = [] + self._cache['package_apk_checksums'][package_name] = set() + except: + # Clear cache since we can't be sure of the state. + self._cache['package_apk_paths'].pop(package_name, 0) + self._cache['package_apk_checksums'].pop(package_name, 0) + raise def _CheckSdkLevel(self, required_sdk_level): """Raises an exception if the device does not have the required SDK level. @@ -1188,16 +1030,11 @@ def handle_large_output(cmd, large_output_mode): if large_output_mode: with device_temp_file.DeviceTempFile(self.adb) as large_output_file: - large_output_cmd = '( %s )>%s 2>&1' % (cmd, large_output_file.name) + cmd = '( %s )>%s 2>&1' % (cmd, large_output_file.name) logger.debug('Large output mode enabled. Will write output to ' 'device and read results from file.') - try: - handle_large_command(large_output_cmd) - return self.ReadFile(large_output_file.name, force_pull=True) - except device_errors.AdbShellCommandFailedError as exc: - output = self.ReadFile(large_output_file.name, force_pull=True) - raise device_errors.AdbShellCommandFailedError( - cmd, output, exc.status, exc.device_serial) + handle_large_command(cmd) + return self.ReadFile(large_output_file.name, force_pull=True) else: try: return handle_large_command(cmd) @@ -1227,7 +1064,7 @@ if run_as: cmd = 'run-as %s sh -c %s' % (cmd_helper.SingleQuote(run_as), cmd_helper.SingleQuote(cmd)) - if (as_root is _FORCE_SU) or (as_root and self.NeedsSU()): + if as_root and self.NeedsSU(): # "su -c sh -c" allows using shell features in |cmd| cmd = self._Su('sh -c %s' % cmd_helper.SingleQuote(cmd)) @@ -1365,33 +1202,6 @@ raise device_errors.CommandFailedError(line, str(self)) @decorators.WithTimeoutAndRetriesFromInstance() - def StartService(self, intent_obj, user_id=None, timeout=None, retries=None): - """Start a service on the device. - - Args: - intent_obj: An Intent object to send describing the service to start. - user_id: A specific user to start the service as, defaults to current. - timeout: Timeout in seconds. - retries: Number of retries - - Raises: - CommandFailedError if the service could not be started. - CommandTimeoutError on timeout. - DeviceUnreachableError on missing device. - """ - # For whatever reason, startservice was changed to start-service on O and - # above. - cmd = ['am', 'startservice'] - if self.build_version_sdk >= version_codes.OREO: - cmd[1] = 'start-service' - if user_id: - cmd.extend(['--user', str(user_id)]) - cmd.extend(intent_obj.am_args) - for line in self.RunShellCommand(cmd, check_return=True): - if line.startswith('Error:'): - raise device_errors.CommandFailedError(line, str(self)) - - @decorators.WithTimeoutAndRetriesFromInstance() def StartInstrumentation(self, component, finish=True, raw=False, extras=None, timeout=None, retries=None): if extras is None: @@ -1573,7 +1383,7 @@ missing_dirs.add(posixpath.dirname(d)) if delete_device_stale and all_stale_files: - self.RemovePath(all_stale_files, force=True, recursive=True) + self.RunShellCommand(['rm', '-f'] + all_stale_files, check_return=True) if all_changed_files: if missing_dirs: @@ -1673,66 +1483,15 @@ else: to_push.append((host_abs_path, device_abs_path)) to_delete = device_checksums.keys() - # We can't rely solely on the checksum approach since it does not catch - # stale directories, which can result in empty directories that cause issues - # during copying in efficient_android_directory_copy.sh. So, find any stale - # directories here so they can be removed in addition to stale files. - if track_stale: - to_delete.extend(self._GetStaleDirectories(host_path, device_path)) def cache_commit_func(): - # When host_path is a not a directory, the path.join() call below would - # have an '' as the second argument, causing an unwanted / to be appended. - if os.path.isfile(host_path): - assert len(host_checksums) == 1 - new_sums = {device_path: host_checksums[host_path]} - else: - new_sums = {posixpath.join(device_path, path[len(host_path) + 1:]): val - for path, val in host_checksums.iteritems()} + new_sums = {posixpath.join(device_path, path[len(host_path) + 1:]): val + for path, val in host_checksums.iteritems()} cache_entry = [ignore_other_files, new_sums] self._cache['device_path_checksums'][device_path] = cache_entry return (to_push, up_to_date, to_delete, cache_commit_func) - def _GetStaleDirectories(self, host_path, device_path): - """Gets a list of stale directories on the device. - - Args: - host_path: an absolute path of a directory on the host - device_path: an absolute path of a directory on the device - - Returns: - A list containing absolute paths to directories on the device that are - considered stale. - """ - def get_device_dirs(path): - directories = set() - command = _RECURSIVE_DIRECTORY_LIST_SCRIPT % cmd_helper.SingleQuote(path) - # We use shell=True to evaluate the command as a script through the shell, - # otherwise RunShellCommand tries to interpret it as the name of a (non - # existent) command to run. - for line in self.RunShellCommand( - command, shell=True, check_return=True): - directories.add(posixpath.relpath(posixpath.normpath(line), path)) - return directories - - def get_host_dirs(path): - directories = set() - if not os.path.isdir(path): - return directories - for root, _, _ in os.walk(path): - if root != path: - # Strip off the top level directory so we can compare the device and - # host. - directories.add( - os.path.relpath(root, path).replace(os.sep, posixpath.sep)) - return directories - - host_dirs = get_host_dirs(host_path) - device_dirs = get_device_dirs(device_path) - stale_dirs = device_dirs - host_dirs - return [posixpath.join(device_path, d) for d in stale_dirs] - def _ComputeDeviceChecksumsForApks(self, package_name): ret = self._cache['package_apk_checksums'].get(package_name) if ret is None: @@ -1849,8 +1608,6 @@ except zip_utils.ZipFailedError: return False - logger.info('Pushing %d files via .zip of size %d', len(files), - os.path.getsize(zip_path)) self.NeedsSU() with device_temp_file.DeviceTempFile( self.adb, suffix='.zip') as device_temp: @@ -1947,29 +1704,8 @@ device_path if not rename else [_RenamePath(p) for p in device_path]) self.RunShellCommand(args, as_root=as_root, check_return=True) - @contextlib.contextmanager - def _CopyToReadableLocation(self, device_path): - """Context manager to copy a file to a globally readable temp file. - - This uses root permission to copy a file to a globally readable named - temporary file. The temp file is removed when this contextmanager is closed. - - Args: - device_path: A string containing the absolute path of the file (on the - device) to copy. - Yields: - The globally readable file object. - """ - with device_temp_file.DeviceTempFile(self.adb) as device_temp: - cmd = 'SRC=%s DEST=%s;cp "$SRC" "$DEST" && chmod 666 "$DEST"' % ( - cmd_helper.SingleQuote(device_path), - cmd_helper.SingleQuote(device_temp.name)) - self.RunShellCommand(cmd, shell=True, as_root=True, check_return=True) - yield device_temp - @decorators.WithTimeoutAndRetriesFromInstance() - def PullFile(self, device_path, host_path, as_root=False, timeout=None, - retries=None): + def PullFile(self, device_path, host_path, timeout=None, retries=None): """Pull a file from the device. Args: @@ -1977,7 +1713,6 @@ from the device. host_path: A string containing the absolute path of the destination on the host. - as_root: Whether root permissions should be used to pull the file. timeout: timeout in seconds retries: number of retries @@ -1989,14 +1724,7 @@ dirname = os.path.dirname(host_path) if dirname and not os.path.exists(dirname): os.makedirs(dirname) - if as_root and self.NeedsSU(): - if not self.PathExists(device_path, as_root=True): - raise device_errors.CommandFailedError( - '%r: No such file or directory' % device_path, str(self)) - with self._CopyToReadableLocation(device_path) as readable_temp_file: - self.adb.Pull(readable_temp_file.name, host_path) - else: - self.adb.Pull(device_path, host_path) + self.adb.Pull(device_path, host_path) def _ReadFileWithPull(self, device_path): try: @@ -2043,8 +1771,12 @@ return _JoinLines(self.RunShellCommand( ['cat', device_path], as_root=as_root, check_return=True)) elif as_root and self.NeedsSU(): - with self._CopyToReadableLocation(device_path) as readable_temp_file: - return self._ReadFileWithPull(readable_temp_file.name) + with device_temp_file.DeviceTempFile(self.adb) as device_temp: + cmd = 'SRC=%s DEST=%s;cp "$SRC" "$DEST" && chmod 666 "$DEST"' % ( + cmd_helper.SingleQuote(device_path), + cmd_helper.SingleQuote(device_temp.name)) + self.RunShellCommand(cmd, shell=True, as_root=True, check_return=True) + return self._ReadFileWithPull(device_temp.name) else: return self._ReadFileWithPull(device_path) @@ -2319,42 +2051,20 @@ else: return False - def GetLocale(self, cache=False): - """Returns the locale setting on the device. - - Args: - cache: Whether to use cached properties when available. - Returns: - A pair (language, country). - """ - locale = self.GetProp('persist.sys.locale', cache=cache) - if locale: - if '-' not in locale: - logging.error('Unparsable locale: %s', locale) - return ('', '') # Behave as if persist.sys.locale is undefined. - return tuple(locale.split('-', 1)) - return (self.GetProp('persist.sys.language', cache=cache), - self.GetProp('persist.sys.country', cache=cache)) - def GetLanguage(self, cache=False): """Returns the language setting on the device. - - DEPRECATED: Prefer GetLocale() instead. - Args: cache: Whether to use cached properties when available. """ - return self.GetLocale(cache=cache)[0] + return self.GetProp('persist.sys.language', cache=cache) def GetCountry(self, cache=False): """Returns the country setting on the device. - DEPRECATED: Prefer GetLocale() instead. - Args: cache: Whether to use cached properties when available. """ - return self.GetLocale(cache=cache)[1] + return self.GetProp('persist.sys.country', cache=cache) @property def screen_density(self): @@ -2427,11 +2137,7 @@ @property def product_cpu_abi(self): - """Returns the product cpu abi of the device (e.g. 'armeabi-v7a'). - - For supported ABIs, the return value will be one of the values defined in - devil.android.ndk.abis. - """ + """Returns the product cpu abi of the device (e.g. 'armeabi-v7a').""" return self.GetProp('ro.product.cpu.abi', cache=True) @property @@ -2557,8 +2263,7 @@ retries: number of retries Returns: - The device's main ABI name. For supported ABIs, the return value will be - one of the values defined in devil.android.ndk.abis. + The device's main ABI name. Raises: CommandTimeoutError on timeout. @@ -2574,8 +2279,9 @@ """ try: ps_cmd = 'ps' - # ps behavior was changed in Android O and above, http://crbug.com/686716 - if self.build_version_sdk >= version_codes.OREO: + # ps behavior was changed in Android above N, http://crbug.com/686716 + if (self.build_version_sdk >= version_codes.NOUGAT_MR1 + and self.build_id[0] > 'N'): ps_cmd = 'ps -e' if pattern: return self._RunPipedShellCommand( @@ -2625,29 +2331,6 @@ processes.append(ProcessInfo(**row)) return processes - def _GetDumpsysOutput(self, extra_args, pattern=None): - """Runs |dumpsys| command on the device and returns its output. - - This private method implements support for filtering the output by a given - |pattern|, but does not do any output parsing. - """ - try: - cmd = ['dumpsys'] + extra_args - if pattern: - cmd = ' '.join(cmd_helper.SingleQuote(s) for s in cmd) - return self._RunPipedShellCommand( - '%s | grep -F %s' % (cmd, cmd_helper.SingleQuote(pattern))) - else: - cmd = ['dumpsys'] + extra_args - return self.RunShellCommand(cmd, check_return=True, large_output=True) - except device_errors.AdbShellCommandFailedError as e: - if e.status and isinstance(e.status, list) and not e.status[0]: - # If dumpsys succeeded but grep failed, there were no lines matching - # the given pattern. - return [] - else: - raise - # TODO(#4103): Remove after migrating clients to ListProcesses. @decorators.WithTimeoutAndRetriesFromInstance() def GetPids(self, process_name=None, timeout=None, retries=None): @@ -2755,181 +2438,6 @@ check_return=True) @decorators.WithTimeoutAndRetriesFromInstance() - def GetWebViewUpdateServiceDump(self, timeout=None, retries=None): - """Get the WebView update command sysdump on the device. - - Returns: - A dictionary with these possible entries: - FallbackLogicEnabled: True|False - CurrentWebViewPackage: "package name" or None - MinimumWebViewVersionCode: int - WebViewPackages: Dict of installed WebView providers, mapping "package - name" to "reason it's valid/invalid." - - It may return an empty dictionary if device does not - support the "dumpsys webviewupdate" command. - - Raises: - CommandFailedError on failure. - CommandTimeoutError on timeout. - DeviceUnreachableError on missing device. - """ - result = {} - - # Command was implemented starting in Oreo - if self.build_version_sdk < version_codes.OREO: - return result - - output = self.RunShellCommand( - ['dumpsys', 'webviewupdate'], check_return=True) - webview_packages = {} - for line in output: - match = re.search(_WEBVIEW_SYSUPDATE_CURRENT_PKG_RE, line) - if match: - result['CurrentWebViewPackage'] = match.group(1) - match = re.search(_WEBVIEW_SYSUPDATE_NULL_PKG_RE, line) - if match: - result['CurrentWebViewPackage'] = None - match = re.search(_WEBVIEW_SYSUPDATE_FALLBACK_LOGIC_RE, line) - if match: - result['FallbackLogicEnabled'] = \ - True if match.group(1) == 'true' else False - match = re.search(_WEBVIEW_SYSUPDATE_PACKAGE_INSTALLED_RE, line) - if match: - package_name = match.group(1) - reason = match.group(2) - webview_packages[package_name] = reason - match = re.search(_WEBVIEW_SYSUPDATE_PACKAGE_NOT_INSTALLED_RE, line) - if match: - package_name = match.group(1) - reason = match.group(2) - webview_packages[package_name] = reason - match = re.search(_WEBVIEW_SYSUPDATE_MIN_VERSION_CODE, line) - if match: - result['MinimumWebViewVersionCode'] = int(match.group(1)) - if webview_packages: - result['WebViewPackages'] = webview_packages - - missing_fields = set(['CurrentWebViewPackage', 'FallbackLogicEnabled']) - \ - set(result.keys()) - if len(missing_fields) > 0: - raise device_errors.CommandFailedError( - '%s not found in dumpsys webviewupdate' % str(list(missing_fields))) - return result - - @decorators.WithTimeoutAndRetriesFromInstance() - def SetWebViewImplementation(self, package_name, timeout=None, retries=None): - """Select the WebView implementation to the specified package. - - Args: - package_name: The package name of a WebView implementation. The package - must be already installed on the device. - timeout: timeout in seconds - retries: number of retries - - Raises: - CommandFailedError on failure. - CommandTimeoutError on timeout. - DeviceUnreachableError on missing device. - """ - installed = self.GetApplicationPaths(package_name) - if not installed: - raise device_errors.CommandFailedError( - '%s is not installed' % package_name, str(self)) - output = self.RunShellCommand( - ['cmd', 'webviewupdate', 'set-webview-implementation', package_name], - single_line=True, - check_return=False) - if output == 'Success': - logging.info('WebView provider set to: %s', package_name) - else: - dumpsys_output = self.GetWebViewUpdateServiceDump() - webview_packages = dumpsys_output.get('WebViewPackages') - if webview_packages: - reason = webview_packages.get(package_name) - if not reason: - all_provider_package_names = webview_packages.keys() - raise device_errors.CommandFailedError( - '%s is not in the system WebView provider list. Must choose one ' - 'of %r.' % (package_name, all_provider_package_names), str(self)) - if re.search(r'is\s+NOT\s+installed/enabled for all users', reason): - raise device_errors.CommandFailedError( - '%s is disabled, make sure to disable WebView fallback logic' % - package_name, str(self)) - if re.search(r'No WebView-library manifest flag', reason): - raise device_errors.CommandFailedError( - '%s does not declare a WebView native library, so it cannot ' - 'be a WebView provider' % package_name, str(self)) - if re.search(r'SDK version too low', reason): - raise device_errors.CommandFailedError( - '%s needs a higher targetSdkVersion (must be >= %d)' % - (package_name, self.build_version_sdk), str(self)) - if re.search(r'Version code too low', reason): - raise device_errors.CommandFailedError( - '%s needs a higher versionCode (must be >= %d)' % - (package_name, dumpsys_output.get('MinimumWebViewVersionCode')), - str(self)) - if re.search(r'Incorrect signature', reason): - raise device_errors.CommandFailedError( - '%s is not signed with release keys (but user builds require ' - 'this for WebView providers)' % package_name, str(self)) - raise device_errors.CommandFailedError( - 'Error setting WebView provider: %s' % output, str(self)) - - @decorators.WithTimeoutAndRetriesFromInstance() - def SetWebViewFallbackLogic(self, enabled, timeout=None, retries=None): - """Set whether WebViewUpdateService's "fallback logic" should be enabled. - - WebViewUpdateService has nonintuitive "fallback logic" for devices where - Monochrome (Chrome Stable) is preinstalled as the WebView provider, with a - "stub" (little-to-no code) implementation of standalone WebView. - - "Fallback logic" (enabled by default) is designed, in the case where the - user has disabled Chrome, to fall back to the stub standalone WebView by - enabling the package. The implementation plumbs through the Chrome APK until - Play Store installs an update with the full implementation. - - A surprising side-effect of "fallback logic" is that, immediately after - sideloading WebView, WebViewUpdateService re-disables the package and - uninstalls the update. This can prevent successfully using standalone - WebView for development, although "fallback logic" can be disabled on - userdebug/eng devices. - - Because this is only relevant for devices with the standalone WebView stub, - this command is only relevant on N-P (inclusive). - - You can determine if "fallback logic" is currently enabled by checking - FallbackLogicEnabled in the dictionary returned by - GetWebViewUpdateServiceDump. - - Args: - enabled: bool - True for enabled, False for disabled - timeout: timeout in seconds - retries: number of retries - - Raises: - CommandFailedError on failure. - CommandTimeoutError on timeout. - DeviceUnreachableError on missing device. - """ - - # Command is only available on devices which preinstall stub WebView. - if not version_codes.NOUGAT <= self.build_version_sdk <= version_codes.PIE: - return - - # redundant-packages is the opposite of fallback logic - enable_string = 'disable' if enabled else 'enable' - output = self.RunShellCommand( - ['cmd', 'webviewupdate', '%s-redundant-packages' % enable_string], - single_line=True, check_return=True) - if output == 'Success': - logging.info('WebView Fallback Logic is %s', - 'enabled' if enabled else 'disabled') - else: - raise device_errors.CommandFailedError( - 'Error setting WebView Fallback Logic: %s' % output, str(self)) - - @decorators.WithTimeoutAndRetriesFromInstance() def TakeScreenshot(self, host_path=None, timeout=None, retries=None): """Takes a screenshot of the device. @@ -3003,7 +2511,7 @@ self._client_caches[client_name] = {} return self._client_caches[client_name] - def ClearCache(self): + def _ClearCache(self): """Clears all caches.""" for client in self._client_caches: self._client_caches[client].clear() @@ -3106,8 +2614,8 @@ return parallelizer.SyncParallelizer(devices) @classmethod - def HealthyDevices(cls, blacklist=None, device_arg='default', retries=1, - enable_usb_resets=False, abis=None, **kwargs): + def HealthyDevices(cls, blacklist=None, device_arg='default', retry=True, + **kwargs): """Returns a list of DeviceUtils instances. Returns a list of DeviceUtils instances that are attached, not blacklisted, @@ -3129,14 +2637,8 @@ blacklisted. ['A', 'B', ...] -> Returns instances for the subset that is not blacklisted. - retries: Number of times to restart adb server and query it again if no - devices are found on the previous attempts, with exponential backoffs - up to 60s between each retry. - enable_usb_resets: If true, will attempt to trigger a USB reset prior to - the last attempt if there are no available devices. It will only reset - those that appear to be android devices. - abis: A list of ABIs for which the device needs to support at least one of - (optional). See devil.android.ndk.abis for valid values. + retry: If true, will attempt to restart adb server and query it again if + no devices are found. A device serial, or a list of device serials (optional). Returns: @@ -3172,23 +2674,14 @@ return True return False - def supports_abi(abi, serial): - if abis and abi not in abis: - logger.warning("Device %s doesn't support required ABIs.", serial) - return False - return True - def _get_devices(): if device_arg: devices = [cls(x, **kwargs) for x in device_arg if not blacklisted(x)] else: devices = [] for adb in adb_wrapper.AdbWrapper.Devices(): - serial = adb.GetDeviceSerial() - if not blacklisted(serial): - device = cls(_CreateAdbWrapper(adb), **kwargs) - if supports_abi(device.GetABI(), serial): - devices.append(device) + if not blacklisted(adb.GetDeviceSerial()): + devices.append(cls(_CreateAdbWrapper(adb), **kwargs)) if len(devices) == 0 and not allow_no_devices: raise device_errors.NoDevicesError() @@ -3196,37 +2689,15 @@ raise device_errors.MultipleDevicesError(devices) return sorted(devices) - def _reset_devices(): - if not reset_usb: - logging.error( - 'reset_usb.py not supported on this platform (%s). Skipping usb ' - 'resets.', sys.platform) - return - if device_arg: - for serial in device_arg: - reset_usb.reset_android_usb(serial) - else: - reset_usb.reset_all_android_devices() - - for attempt in xrange(retries+1): - try: - return _get_devices() - except device_errors.NoDevicesError: - if attempt == retries: - logging.error('No devices found after exhausting all retries.') - raise - elif attempt == retries - 1 and enable_usb_resets: - logging.warning( - 'Attempting to reset relevant USB devices prior to the last ' - 'attempt.') - _reset_devices() - # math.pow returns floats, so cast to int for easier testing - sleep_s = min(int(math.pow(2, attempt + 1)), 60) - logger.warning( - 'No devices found. Will try again after restarting adb server ' - 'and a short nap of %d s.', sleep_s) - time.sleep(sleep_s) - RestartServer() + try: + return _get_devices() + except device_errors.NoDevicesError: + if not retry: + raise + logger.warning( + 'No devices found. Will try again after restarting adb server.') + RestartServer() + return _get_devices() @decorators.WithTimeoutAndRetriesFromInstance() def RestartAdbd(self, timeout=None, retries=None): @@ -3335,39 +2806,3 @@ return self.SendKeyEvent(keyevent.KEYCODE_POWER) timeout_retry.WaitFor(screen_test, wait_period=1) - - @decorators.WithTimeoutAndRetriesFromInstance() - def ChangeOwner(self, owner_group, paths, timeout=None, retries=None): - """Changes file system ownership for permissions. - - Args: - owner_group: New owner and group to assign. Note that this should be a - string in the form user[.group] where the group is option. - paths: Paths to change ownership of. - - Note that the -R recursive option is not supported by all Android - versions. - """ - if not paths: - return - self.RunShellCommand(['chown', owner_group] + paths, check_return=True) - - @decorators.WithTimeoutAndRetriesFromInstance() - def ChangeSecurityContext(self, security_context, paths, timeout=None, - retries=None): - """Changes the SELinux security context for files. - - Args: - security_context: The new security context as a string - paths: Paths to change the security context of. - - Note that the -R recursive option is not supported by all Android - versions. - """ - if not paths: - return - command = ['chcon', security_context] + paths - - # Note, need to force su because chcon can fail with permission errors even - # if the device is rooted. - self.RunShellCommand(command, as_root=_FORCE_SU, check_return=True)
diff --git a/systrace/catapult/devil/devil/android/device_utils_devicetest.py b/systrace/catapult/devil/devil/android/device_utils_devicetest.py index 0836f3e..173094b 100755 --- a/systrace/catapult/devil/devil/android/device_utils_devicetest.py +++ b/systrace/catapult/devil/devil/android/device_utils_devicetest.py
@@ -210,39 +210,6 @@ cmd_helper.RunCmd(['rm', '-rf', host_tmp_dir]) self.device.RemovePath(_DEVICE_DIR, recursive=True, force=True) - def testPushWithStaleDirectories(self): - # Make a few files and directories to push. - host_tmp_dir = tempfile.mkdtemp() - host_sub_dir1 = '%s/%s' % (host_tmp_dir, _SUB_DIR1) - host_sub_dir2 = "%s/%s/%s" % (host_tmp_dir, _SUB_DIR, _SUB_DIR2) - os.makedirs(host_sub_dir1) - os.makedirs(host_sub_dir2) - - self._MakeTempFileGivenDir(host_sub_dir1, _OLD_CONTENTS) - self._MakeTempFileGivenDir(host_sub_dir2, _OLD_CONTENTS) - - # Push all our created files/directories and verify they're on the device. - self.device.PushChangedFiles([(host_tmp_dir, _DEVICE_DIR)], - delete_device_stale=True) - top_level_dirs = self.device.ListDirectory(_DEVICE_DIR) - self.assertIn(_SUB_DIR1, top_level_dirs) - self.assertIn(_SUB_DIR, top_level_dirs) - sub_dir = self.device.ListDirectory('%s/%s' % (_DEVICE_DIR, _SUB_DIR)) - self.assertIn(_SUB_DIR2, sub_dir) - - # Remove one of the directories on the host and push again. - cmd_helper.RunCmd(['rm', '-rf', host_sub_dir2]) - self.device.PushChangedFiles([(host_tmp_dir, _DEVICE_DIR)], - delete_device_stale=True) - - # Verify that the directory we removed is no longer on the device, but the - # other directories still are. - top_level_dirs = self.device.ListDirectory(_DEVICE_DIR) - self.assertIn(_SUB_DIR1, top_level_dirs) - self.assertIn(_SUB_DIR, top_level_dirs) - sub_dir = self.device.ListDirectory('%s/%s' % (_DEVICE_DIR, _SUB_DIR)) - self.assertEqual([], sub_dir) - def testRestartAdbd(self): def get_adbd_pid(): try:
diff --git a/systrace/catapult/devil/devil/android/device_utils_test.py b/systrace/catapult/devil/devil/android/device_utils_test.py index 5799c7b..b5660ac 100755 --- a/systrace/catapult/devil/devil/android/device_utils_test.py +++ b/systrace/catapult/devil/devil/android/device_utils_test.py
@@ -15,14 +15,12 @@ import logging import os import stat -import sys import unittest from devil import devil_env from devil.android import device_errors from devil.android import device_signal from devil.android import device_utils -from devil.android.ndk import abis from devil.android.sdk import adb_wrapper from devil.android.sdk import intent from devil.android.sdk import keyevent @@ -33,6 +31,7 @@ with devil_env.SysPath(devil_env.PYMOCK_PATH): import mock # pylint: disable=import-error + def Process(name, pid, ppid='1'): return device_utils.ProcessInfo(name=name, pid=pid, ppid=ppid) @@ -56,10 +55,8 @@ def __init__(self, path, package_name, perms=None): self.path = path - self.is_bundle = path.endswith('_bundle') self.package_name = package_name self.perms = perms - self.abis = [abis.ARM] def GetPackageName(self): return self.package_name @@ -67,9 +64,6 @@ def GetPermissions(self): return self.perms - def GetAbis(self): - return self.abis - class _MockMultipleDevicesError(Exception): pass @@ -314,62 +308,32 @@ class DeviceUtilsHasRootTest(DeviceUtilsTest): def testHasRoot_true(self): - with self.patch_call(self.call.device.build_type, - return_value='userdebug'), ( - self.patch_call(self.call.device.product_name, - return_value='notasailfish')), ( + with self.patch_call(self.call.device.product_name, + return_value='notasailfish'), ( self.assertCall(self.call.adb.Shell('ls /root'), 'foo\n')): self.assertTrue(self.device.HasRoot()) def testhasRootSpecial_true(self): - with self.patch_call(self.call.device.build_type, - return_value='userdebug'), ( - self.patch_call(self.call.device.product_name, - return_value='sailfish')), ( + with self.patch_call(self.call.device.product_name, + return_value='sailfish'), ( self.assertCall(self.call.adb.Shell('getprop service.adb.root'), '1\n')): self.assertTrue(self.device.HasRoot()) - def testhasRootSpecialAosp_true(self): - with self.patch_call(self.call.device.build_type, - return_value='userdebug'), ( - self.patch_call(self.call.device.product_name, - return_value='aosp_sailfish')), ( - self.assertCall(self.call.adb.Shell('getprop service.adb.root'), - '1\n')): - self.assertTrue(self.device.HasRoot()) - - def testhasRootEngBuild_true(self): - with self.patch_call(self.call.device.build_type, - return_value='eng'): - self.assertTrue(self.device.HasRoot()) - def testHasRoot_false(self): - with self.patch_call(self.call.device.build_type, - return_value='userdebug'), ( - self.patch_call(self.call.device.product_name, - return_value='notasailfish')), ( + with self.patch_call(self.call.device.product_name, + return_value='notasailfish'), ( self.assertCall(self.call.adb.Shell('ls /root'), self.ShellError())): self.assertFalse(self.device.HasRoot()) def testHasRootSpecial_false(self): - with self.patch_call(self.call.device.build_type, - return_value='userdebug'), ( - self.patch_call(self.call.device.product_name, - return_value='sailfish')), ( + with self.patch_call(self.call.device.product_name, + return_value='sailfish'), ( self.assertCall(self.call.adb.Shell('getprop service.adb.root'), '\n')): self.assertFalse(self.device.HasRoot()) - def testHasRootSpecialAosp_false(self): - with self.patch_call(self.call.device.build_type, - return_value='userdebug'), ( - self.patch_call(self.call.device.product_name, - return_value='aosp_sailfish')), ( - self.assertCall(self.call.adb.Shell('getprop service.adb.root'), - '\n')): - self.assertFalse(self.device.HasRoot()) class DeviceUtilsEnableRootTest(DeviceUtilsTest): @@ -377,7 +341,7 @@ with self.assertCalls( self.call.adb.Root(), self.call.adb.WaitForDevice(), - (self.call.device.HasRoot(), True)): + (self.call.device.GetProp('service.adb.root', cache=False), '1')): self.device.EnableRoot() def testEnableRoot_userBuild(self): @@ -394,16 +358,6 @@ with self.assertRaises(device_errors.AdbCommandFailedError): self.device.EnableRoot() - def testEnableRoot_timeoutInWaitForDevice(self): - with self.assertCalls( - (self.call.adb.Root(), - self.AdbCommandError( - output='timeout expired while waiting for device')), - (self.call.device.IsUserBuild(), False), - self.call.adb.WaitForDevice(), - (self.call.device.HasRoot(), True)): - self.device.EnableRoot() - class DeviceUtilsIsUserBuildTest(DeviceUtilsTest): @@ -511,27 +465,6 @@ self.device.GetApplicationVersion('com.android.chrome') -class DeviceUtils_GetPackageArchitectureTest(DeviceUtilsTest): - - def test_GetPackageArchitecture_exists(self): - with self.assertCall( - self.call.device._RunPipedShellCommand( - 'dumpsys package com.android.chrome | grep -F primaryCpuAbi'), - [' primaryCpuAbi=armeabi-v7a']): - self.assertEquals( - abis.ARM, - self.device.GetPackageArchitecture('com.android.chrome')) - - def test_GetPackageArchitecture_notExists(self): - with self.assertCall( - self.call.device._RunPipedShellCommand( - 'dumpsys package com.android.chrome | grep -F primaryCpuAbi'), - []): - self.assertEquals( - None, - self.device.GetPackageArchitecture('com.android.chrome')) - - class DeviceUtilsGetApplicationDataDirectoryTest(DeviceUtilsTest): def testGetApplicationDataDirectory_exists(self): @@ -782,18 +715,6 @@ self.device.Install(DeviceUtilsInstallTest.mock_apk, retries=0, permissions=['p1', 'p2']) - def testInstall_identicalPriorInstall(self): - with self.assertCalls( - (mock.call.os.path.exists('/fake/test/app.apk'), True), - (self.call.device._GetApplicationPathsInternal('test.package'), - ['/fake/data/app/test.package.apk']), - (self.call.device._ComputeStaleApks('test.package', - ['/fake/test/app.apk']), - ([], None)), - (self.call.device.ForceStop('test.package'))): - self.device.Install(DeviceUtilsInstallTest.mock_apk, retries=0, - permissions=[]) - def testInstall_differentPriorInstall(self): with self.assertCalls( (mock.call.os.path.exists('/fake/test/app.apk'), True), @@ -808,18 +729,6 @@ self.device.Install(DeviceUtilsInstallTest.mock_apk, retries=0, permissions=[]) - def testInstall_differentPriorInstallSplitApk(self): - with self.assertCalls( - (mock.call.os.path.exists('/fake/test/app.apk'), True), - (self.call.device._GetApplicationPathsInternal('test.package'), - ['/fake/data/app/test.package.apk', - '/fake/data/app/test.package2.apk']), - self.call.device.Uninstall('test.package'), - self.call.adb.Install('/fake/test/app.apk', reinstall=False, - allow_downgrade=False)): - self.device.Install(DeviceUtilsInstallTest.mock_apk, retries=0, - permissions=[]) - def testInstall_differentPriorInstall_reinstall(self): with self.assertCalls( (mock.call.os.path.exists('/fake/test/app.apk'), True), @@ -874,11 +783,6 @@ self.device.Install(DeviceUtilsInstallTest.mock_apk, reinstall=True, retries=0, permissions=[], allow_downgrade=True) - def testInstall_modulesSpecified(self): - with self.assertRaises(device_errors.CommandFailedError): - self.device.Install(DeviceUtilsInstallTest.mock_apk, - modules=['base']) - class DeviceUtilsInstallSplitApkTest(DeviceUtilsTest): @@ -961,61 +865,6 @@ ['split1.apk', 'split2.apk', 'split3.apk'], permissions=[], retries=0) - def testInstallSplitApk_previouslyNonSplit(self): - with self.assertCalls( - (self.call.device._CheckSdkLevel(21)), - (mock.call.devil.android.sdk.split_select.SelectSplits( - self.device, 'base.apk', - ['split1.apk', 'split2.apk', 'split3.apk'], - allow_cached_props=False), - ['split2.apk']), - (mock.call.os.path.exists('base.apk'), True), - (mock.call.os.path.exists('split2.apk'), True), - (self.call.device._GetApplicationPathsInternal( - 'test.package'), ['/fake/data/app/test.package.apk']), - self.call.device.Uninstall('test.package'), - (self.call.adb.InstallMultiple( - ['base.apk', 'split2.apk'], partial=None, reinstall=False, - allow_downgrade=False))): - self.device.InstallSplitApk(DeviceUtilsInstallSplitApkTest.mock_apk, - ['split1.apk', 'split2.apk', 'split3.apk'], permissions=[], retries=0) - - -class DeviceUtilsInstallBundleTest(DeviceUtilsTest): - mock_apk = _MockApkHelper('/fake/test/app_bundle', 'test.package', ['p1']) - - def testInstallBundle_noPriorInstall(self): - with self.patch_call(self.call.device.build_version_sdk, return_value=23): - with self.assertCalls( - (mock.call.devil.utils.cmd_helper.RunCmd( - ['/fake/test/app_bundle', 'install', '--device', - self.device.serial]), 0), - (self.call.device.GrantPermissions('test.package', ['p1']), [])): - self.device.Install(DeviceUtilsInstallBundleTest.mock_apk) - - def testInstallBundle_modulesSpecified(self): - with self.patch_call(self.call.device.build_version_sdk, return_value=23): - with self.assertCalls( - (mock.call.devil.utils.cmd_helper.RunCmd( - ['/fake/test/app_bundle', 'install', '--device', - self.device.serial, '-m', 'base']), 0), - (self.call.device.GrantPermissions('test.package', ['p1']), [])): - self.device.Install( - DeviceUtilsInstallBundleTest.mock_apk, modules=['base']) - - def testInstallBundle_permissionsPreM(self): - with self.patch_call(self.call.device.build_version_sdk, return_value=20): - with self.assertCalls( - (mock.call.devil.utils.cmd_helper.RunCmd( - ['/fake/test/app_bundle', 'install', '--device', - self.device.serial]), 0)): - self.device.Install(DeviceUtilsInstallBundleTest.mock_apk) - - def testInstallBundle_splitApks(self): - with self.assertRaises(device_errors.CommandFailedError): - self.device.InstallSplitApk( - DeviceUtilsInstallBundleTest.mock_apk, ['apk1', 'apk2']) - class DeviceUtilsUninstallTest(DeviceUtilsTest): @@ -1566,62 +1415,6 @@ self.device.StartActivity(test_intent) -class DeviceUtilsStartServiceTest(DeviceUtilsTest): - def testStartService_success(self): - test_intent = intent.Intent(action='android.intent.action.START', - package='test.package', - activity='.Main') - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT): - with self.assertCall( - self.call.adb.Shell('am startservice ' - '-a android.intent.action.START ' - '-n test.package/.Main'), - 'Starting service: Intent { act=android.intent.action.START }'): - self.device.StartService(test_intent) - - def testStartService_failure(self): - test_intent = intent.Intent(action='android.intent.action.START', - package='test.package', - activity='.Main') - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT): - with self.assertCall( - self.call.adb.Shell('am startservice ' - '-a android.intent.action.START ' - '-n test.package/.Main'), - 'Error: Failed to start test service'): - with self.assertRaises(device_errors.CommandFailedError): - self.device.StartService(test_intent) - - def testStartService_withUser(self): - test_intent = intent.Intent(action='android.intent.action.START', - package='test.package', - activity='.Main') - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT): - with self.assertCall( - self.call.adb.Shell('am startservice ' - '--user TestUser ' - '-a android.intent.action.START ' - '-n test.package/.Main'), - 'Starting service: Intent { act=android.intent.action.START }'): - self.device.StartService(test_intent, user_id='TestUser') - - def testStartService_onOreo(self): - test_intent = intent.Intent(action='android.intent.action.START', - package='test.package', - activity='.Main') - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.OREO): - with self.assertCall( - self.call.adb.Shell('am start-service ' - '-a android.intent.action.START ' - '-n test.package/.Main'), - 'Starting service: Intent { act=android.intent.action.START }'): - self.device.StartService(test_intent) - - class DeviceUtilsStartInstrumentationTest(DeviceUtilsTest): def testStartInstrumentation_nothing(self): @@ -1898,8 +1691,6 @@ mock_zip_temp_dir), (mock.call.devil.utils.zip_utils.WriteZipFile( '/test/temp/dir/tmp.zip', test_files)), - (mock.call.os.path.getsize( - '/test/temp/dir/tmp.zip'), 123), (self.call.device.NeedsSU(), True), (mock.call.devil.android.device_temp_file.DeviceTempFile(self.adb, suffix='.zip'), @@ -2027,33 +1818,6 @@ self.device.PullFile('/data/app/test.file.does.not.exist', '/test/file/host/path') - def testPullFile_asRoot(self): - with mock.patch('os.path.exists', return_value=True): - with self.assertCalls( - (self.call.device.NeedsSU(), True), - (self.call.device.PathExists('/this/file/can.be.read.with.su', - as_root=True), True), - (mock.call.devil.android.device_temp_file.DeviceTempFile(self.adb), - MockTempFile('/sdcard/tmp/on.device')), - self.call.device.RunShellCommand( - 'SRC=/this/file/can.be.read.with.su DEST=/sdcard/tmp/on.device;' - 'cp "$SRC" "$DEST" && chmod 666 "$DEST"', - shell=True, as_root=True, check_return=True), - (self.call.adb.Pull('/sdcard/tmp/on.device', - '/test/file/host/path'))): - self.device.PullFile('/this/file/can.be.read.with.su', - '/test/file/host/path', as_root=True) - - def testPullFile_asRootDoesntExistOnDevice(self): - with mock.patch('os.path.exists', return_value=True): - with self.assertCalls( - (self.call.device.NeedsSU(), True), - (self.call.device.PathExists('/data/app/test.file.does.not.exist', - as_root=True), False)): - with self.assertRaises(device_errors.CommandFailedError): - self.device.PullFile('/data/app/test.file.does.not.exist', - '/test/file/host/path', as_root=True) - class DeviceUtilsReadFileTest(DeviceUtilsTest): @@ -2761,205 +2525,6 @@ self.device.SetEnforce(enabled='0') # Not recommended but it works! -class DeviceUtilsGetWebViewUpdateServiceDumpTest(DeviceUtilsTest): - - def testGetWebViewUpdateServiceDump_success(self): - # Some of the lines of adb shell dumpsys webviewupdate: - dumpsys_lines = [ - 'Fallback logic enabled: true', - ('Current WebView package (name, version): ' - '(com.android.chrome, 61.0.3163.98)'), - 'Minimum WebView version code: 12345', - 'WebView packages:', - ('Valid package com.android.chrome (versionName: ' - '61.0.3163.98, versionCode: 1, targetSdkVersion: 26) is ' - 'installed/enabled for all users'), - ('Valid package com.google.android.webview (versionName: ' - '58.0.3029.125, versionCode: 1, targetSdkVersion: 26) is NOT ' - 'installed/enabled for all users'), - ('Invalid package com.google.android.apps.chrome (versionName: ' - '56.0.2924.122, versionCode: 2, targetSdkVersion: 25), reason: SDK ' - 'version too low'), - ('com.chrome.canary is NOT installed.'), - ] - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.OREO): - with self.assertCall( - self.call.adb.Shell('dumpsys webviewupdate'), - '\n'.join(dumpsys_lines)): - update = self.device.GetWebViewUpdateServiceDump() - self.assertTrue(update['FallbackLogicEnabled']) - self.assertEqual('com.android.chrome', - update['CurrentWebViewPackage']) - self.assertEqual(12345, update['MinimumWebViewVersionCode']) - # Order isn't really important, and we shouldn't have duplicates, so we - # convert to sets. - expected = { - 'com.android.chrome', 'com.google.android.webview', - 'com.google.android.apps.chrome', 'com.chrome.canary' - } - self.assertSetEqual(expected, set(update['WebViewPackages'].keys())) - self.assertEquals( - 'is installed/enabled for all users', - update['WebViewPackages']['com.android.chrome']) - self.assertEquals( - 'is NOT installed/enabled for all users', - update['WebViewPackages']['com.google.android.webview']) - self.assertEquals( - 'reason: SDK version too low', - update['WebViewPackages']['com.google.android.apps.chrome']) - self.assertEquals( - 'is NOT installed.', - update['WebViewPackages']['com.chrome.canary']) - - def testGetWebViewUpdateServiceDump_missingkey(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.OREO): - with self.assertCall(self.call.adb.Shell('dumpsys webviewupdate'), - 'Fallback logic enabled: true'): - with self.assertRaises(device_errors.CommandFailedError): - self.device.GetWebViewUpdateServiceDump() - - def testGetWebViewUpdateServiceDump_noop(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT_MR1): - with self.assertCalls(): - self.device.GetWebViewUpdateServiceDump() - - def testGetWebViewUpdateServiceDump_noPackage(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.OREO): - with self.assertCall(self.call.adb.Shell('dumpsys webviewupdate'), - 'Fallback logic enabled: true\n' - 'Current WebView package is null'): - update = self.device.GetWebViewUpdateServiceDump() - self.assertEqual(True, update['FallbackLogicEnabled']) - self.assertEqual(None, update['CurrentWebViewPackage']) - - -class DeviceUtilsSetWebViewImplementationTest(DeviceUtilsTest): - - def testSetWebViewImplementation_success(self): - with self.patch_call( - self.call.device.GetApplicationPaths, return_value=['/any/path']): - with self.assertCall( - self.call.adb.Shell( - 'cmd webviewupdate set-webview-implementation foo.org'), - 'Success'): - self.device.SetWebViewImplementation('foo.org') - - def testSetWebViewImplementation_uninstalled(self): - with self.patch_call(self.call.device.GetApplicationPaths, return_value=[]): - with self.assertRaises(device_errors.CommandFailedError) as cfe: - self.device.SetWebViewImplementation('foo.org') - self.assertIn('is not installed', cfe.exception.message) - - def _testSetWebViewImplementationHelper(self, mock_dump_sys, - exception_message_substr): - with self.patch_call( - self.call.device.GetApplicationPaths, return_value=['/any/path']): - with self.assertCall( - self.call.adb.Shell( - 'cmd webviewupdate set-webview-implementation foo.org'), 'Oops!'): - with self.patch_call( - self.call.device.GetWebViewUpdateServiceDump, - return_value=mock_dump_sys): - with self.assertRaises(device_errors.CommandFailedError) as cfe: - self.device.SetWebViewImplementation('foo.org') - self.assertIn(exception_message_substr, cfe.exception.message) - - def testSetWebViewImplementation_notInProviderList(self): - mock_dump_sys = { - 'WebViewPackages': { - 'some.package': 'any reason', - 'other.package': 'any reason', - } - } - self._testSetWebViewImplementationHelper(mock_dump_sys, 'provider list') - - def testSetWebViewImplementation_notEnabled(self): - mock_dump_sys = { - 'WebViewPackages': { - 'foo.org': 'is NOT installed/enabled for all users', - } - } - self._testSetWebViewImplementationHelper(mock_dump_sys, 'is disabled') - - def testSetWebViewImplementation_missingManifestTag(self): - mock_dump_sys = { - 'WebViewPackages': { - 'foo.org': 'No WebView-library manifest flag', - } - } - self._testSetWebViewImplementationHelper(mock_dump_sys, - 'WebView native library') - - def testSetWebViewImplementation_lowTargetSdkVersion(self): - mock_dump_sys = {'WebViewPackages': {'foo.org': 'SDK version too low',}} - with self.patch_call(self.call.device.build_version_sdk, return_value=26): - self._testSetWebViewImplementationHelper(mock_dump_sys, - 'higher targetSdkVersion') - - def testSetWebViewImplementation_lowVersionCode(self): - mock_dump_sys = { - 'MinimumWebViewVersionCode': 12345, - 'WebViewPackages': { - 'foo.org': 'Version code too low', - } - } - self._testSetWebViewImplementationHelper(mock_dump_sys, - 'higher versionCode') - - def testSetWebViewImplementation_invalidSignature(self): - mock_dump_sys = { - 'WebViewPackages': { - 'foo.org': 'Incorrect signature', - } - } - self._testSetWebViewImplementationHelper(mock_dump_sys, - 'signed with release keys') - - -class DeviceUtilsSetWebViewFallbackLogicTest(DeviceUtilsTest): - - def testSetWebViewFallbackLogic_False_success(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT): - with self.assertCall(self.call.adb.Shell( - 'cmd webviewupdate enable-redundant-packages'), 'Success'): - self.device.SetWebViewFallbackLogic(False) - - def testSetWebViewFallbackLogic_True_success(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT): - with self.assertCall(self.call.adb.Shell( - 'cmd webviewupdate disable-redundant-packages'), 'Success'): - self.device.SetWebViewFallbackLogic(True) - - def testSetWebViewFallbackLogic_failure(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.NOUGAT): - with self.assertCall(self.call.adb.Shell( - 'cmd webviewupdate enable-redundant-packages'), 'Oops!'): - with self.assertRaises(device_errors.CommandFailedError): - self.device.SetWebViewFallbackLogic(False) - - def testSetWebViewFallbackLogic_beforeNougat(self): - with self.patch_call(self.call.device.build_version_sdk, - return_value=version_codes.MARSHMALLOW): - with self.assertCalls(): - self.device.SetWebViewFallbackLogic(False) - - def testSetWebViewFallbackLogic_afterPie(self): - # TODO(ntfschr): replace this with the Q constant when the SDK is public and - # the codename is finalized. - q_version_code = version_codes.PIE + 1 - with self.patch_call(self.call.device.build_version_sdk, - return_value=q_version_code): - with self.assertCalls(): - self.device.SetWebViewFallbackLogic(False) - - class DeviceUtilsTakeScreenshotTest(DeviceUtilsTest): def testTakeScreenshot_fileNameProvided(self): @@ -3034,7 +2599,7 @@ self.assertEqual(self.device._cache['test'], 0) self.assertEqual(client_cache_one, {'test': 1}) self.assertEqual(client_cache_two, {'test': 2}) - self.device.ClearCache() + self.device._ClearCache() self.assertTrue('test' not in self.device._cache) self.assertEqual(client_cache_one, {}) self.assertEqual(client_cache_two, {}) @@ -3045,7 +2610,7 @@ client_cache_two = self.device.GetClientCache('ClientOne') self.assertEqual(client_cache_one, {'test': 1}) self.assertEqual(client_cache_two, {'test': 1}) - self.device.ClearCache() + self.device._ClearCache() self.assertEqual(client_cache_one, {}) self.assertEqual(client_cache_two, {}) @@ -3056,11 +2621,7 @@ test_serials = ['0123456789abcdef', 'fedcba9876543210'] with self.assertCalls( (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), - [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM)): + [_AdbWrapperMock(s) for s in test_serials])): blacklist = mock.NonCallableMock(**{'Read.return_value': []}) devices = device_utils.DeviceUtils.HealthyDevices(blacklist) for serial, device in zip(test_serials, devices): @@ -3071,9 +2632,7 @@ test_serials = ['0123456789abcdef', 'fedcba9876543210'] with self.assertCalls( (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), - [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM)): + [_AdbWrapperMock(s) for s in test_serials])): blacklist = mock.NonCallableMock( **{'Read.return_value': ['fedcba9876543210']}) devices = device_utils.DeviceUtils.HealthyDevices(blacklist) @@ -3086,10 +2645,6 @@ with self.assertCalls( (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM), (mock.call.devil.android.device_errors.MultipleDevicesError(mock.ANY), _MockMultipleDevicesError())): with self.assertRaises(_MockMultipleDevicesError): @@ -3099,9 +2654,7 @@ test_serials = ['0123456789abcdef'] with self.assertCalls( (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), - [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM)): + [_AdbWrapperMock(s) for s in test_serials])): devices = device_utils.DeviceUtils.HealthyDevices(device_arg=None) self.assertEquals(1, len(devices)) @@ -3111,7 +2664,7 @@ (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), [_AdbWrapperMock(s) for s in test_serials])): with self.assertRaises(device_errors.NoDevicesError): - device_utils.DeviceUtils.HealthyDevices(device_arg=None, retries=0) + device_utils.DeviceUtils.HealthyDevices(device_arg=None, retry=False) def testHealthyDevices_noneDeviceArg_multiple_attached_ANDROID_SERIAL(self): try: @@ -3131,11 +2684,7 @@ test_serials = ['0123456789abcdef', 'fedcba9876543210'] with self.assertCalls( (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), - [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM)): + [_AdbWrapperMock(s) for s in test_serials])): devices = device_utils.DeviceUtils.HealthyDevices(device_arg=()) self.assertEquals(2, len(devices)) @@ -3154,47 +2703,17 @@ (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), [_AdbWrapperMock(s) for s in test_serials])): with self.assertRaises(device_errors.NoDevicesError): - device_utils.DeviceUtils.HealthyDevices(device_arg=[], retries=0) + device_utils.DeviceUtils.HealthyDevices(device_arg=[], retry=False) - @mock.patch('time.sleep') - @mock.patch('devil.android.device_utils.RestartServer') - def testHealthyDevices_EmptyListDeviceArg_no_attached_with_retry( - self, mock_restart, mock_sleep): + def testHealthyDevices_EmptyListDeviceArg_no_attached_with_retry(self): + test_serials = [] with self.assertCalls( - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), [])): + (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), + [_AdbWrapperMock(s) for s in test_serials]), + (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), + [_AdbWrapperMock(s) for s in test_serials])): with self.assertRaises(device_errors.NoDevicesError): - device_utils.DeviceUtils.HealthyDevices(device_arg=[], retries=4) - self.assertEquals(mock_restart.call_count, 4) - self.assertEquals(mock_sleep.call_args_list, [ - mock.call(2), mock.call(4), mock.call(8), mock.call(16)]) - - @mock.patch('time.sleep') - @mock.patch('devil.android.device_utils.RestartServer') - def testHealthyDevices_EmptyListDeviceArg_no_attached_with_resets( - self, mock_restart, mock_sleep): - # The reset_usb import fails on windows. Mock the full import here so it can - # succeed like it would on linux. - mock_reset_import = mock.MagicMock() - sys.modules['devil.utils.reset_usb'] = mock_reset_import - with self.assertCalls( - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), []), - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), [])): - with self.assertRaises(device_errors.NoDevicesError): - with mock.patch.object( - mock_reset_import, 'reset_all_android_devices') as mock_reset: - device_utils.DeviceUtils.HealthyDevices(device_arg=[], retries=4, - enable_usb_resets=True) - self.assertEquals(mock_reset.call_count, 1) - self.assertEquals(mock_restart.call_count, 4) - self.assertEquals(mock_sleep.call_args_list, [ - mock.call(2), mock.call(4), mock.call(8), mock.call(16)]) + device_utils.DeviceUtils.HealthyDevices(device_arg=[], retry=True) def testHealthyDevices_ListDeviceArg(self): device_arg = ['0123456789abcdef', 'fedcba9876543210'] @@ -3206,33 +2725,6 @@ del os.environ['ANDROID_SERIAL'] self.assertEquals(2, len(devices)) - def testHealthyDevices_abisArg_no_matching_abi(self): - test_serials = ['0123456789abcdef', 'fedcba9876543210'] - with self.assertCalls( - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), - [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM)): - with self.assertRaises(device_errors.NoDevicesError): - device_utils.DeviceUtils.HealthyDevices(device_arg=[], retries=0, - abis=[abis.ARM_64]) - - def testHealthyDevices_abisArg_filter_on_abi(self): - test_serials = ['0123456789abcdef', 'fedcba9876543210'] - with self.assertCalls( - (mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.Devices(), - [_AdbWrapperMock(s) for s in test_serials]), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM_64), - (mock.call.devil.android.device_utils.DeviceUtils.GetABI(), - abis.ARM)): - devices = device_utils.DeviceUtils.HealthyDevices(device_arg=[], - retries=0, - abis=[abis.ARM_64]) - self.assertEquals(1, len(devices)) - class DeviceUtilsRestartAdbdTest(DeviceUtilsTest): @@ -3475,69 +2967,6 @@ self.device.GetIMEI() -class DeviceUtilsChangeOwner(DeviceUtilsTest): - - def testChangeOwner(self): - with self.assertCalls( - (self.call.device.RunShellCommand( - ['chown', 'user.group', '/path/to/file1', 'file2'], - check_return=True))): - self.device.ChangeOwner('user.group', ['/path/to/file1', 'file2']) - - -class DeviceUtilsChangeSecurityContext(DeviceUtilsTest): - - def testChangeSecurityContext(self): - with self.assertCalls( - (self.call.device.RunShellCommand( - ['chcon', 'u:object_r:system_data_file:s0', '/path', '/path2'], - as_root=device_utils._FORCE_SU, check_return=True))): - self.device.ChangeSecurityContext('u:object_r:system_data_file:s0', - ['/path', '/path2']) - - -class DeviceUtilsLocale(DeviceUtilsTest): - - def testLocaleLegacy(self): - with self.assertCalls( - (self.call.device.GetProp('persist.sys.locale', cache=False), ''), - (self.call.device.GetProp('persist.sys.language', cache=False), 'en'), - (self.call.device.GetProp('persist.sys.country', cache=False), 'US')): - self.assertEquals(self.device.GetLocale(), ('en', 'US')) - - def testLocale(self): - with self.assertCalls( - (self.call.device.GetProp('persist.sys.locale', cache=False), 'en-US'), - (self.call.device.GetProp('persist.sys.locale', cache=False), - 'en-US-sw')): - self.assertEquals(self.device.GetLocale(), ('en', 'US')) - self.assertEquals(self.device.GetLocale(), ('en', 'US-sw')) - - def testBadLocale(self): - with self.assertCalls( - (self.call.device.GetProp('persist.sys.locale', cache=False), 'en')): - self.assertEquals(self.device.GetLocale(), ('', '')) - - - def testLanguageAndCountryLegacy(self): - with self.assertCalls( - (self.call.device.GetProp('persist.sys.locale', cache=False), ''), - (self.call.device.GetProp('persist.sys.language', cache=False), 'en'), - (self.call.device.GetProp('persist.sys.country', cache=False), 'US'), - (self.call.device.GetProp('persist.sys.locale', cache=False), ''), - (self.call.device.GetProp('persist.sys.language', cache=False), 'en'), - (self.call.device.GetProp('persist.sys.country', cache=False), 'US')): - self.assertEquals(self.device.GetLanguage(), 'en') - self.assertEquals(self.device.GetCountry(), 'US') - - def testLanguageAndCountry(self): - with self.assertCalls( - (self.call.device.GetProp('persist.sys.locale', cache=False), 'en-US'), - (self.call.device.GetProp('persist.sys.locale', cache=False), 'en-US')): - self.assertEquals(self.device.GetLanguage(), 'en') - self.assertEquals(self.device.GetCountry(), 'US') - - if __name__ == '__main__': logging.getLogger().setLevel(logging.DEBUG) unittest.main(verbosity=2)
diff --git a/systrace/catapult/devil/devil/android/fastboot_utils.py b/systrace/catapult/devil/devil/android/fastboot_utils.py index 3621d7f..3bd3ee8 100644 --- a/systrace/catapult/devil/devil/android/fastboot_utils.py +++ b/systrace/catapult/devil/devil/android/fastboot_utils.py
@@ -108,7 +108,7 @@ This waits for the device serial to show up in fastboot devices output. """ def fastboot_mode(): - return any(self._serial == str(d) for d in self.fastboot.Devices()) + return self._serial in self.fastboot.Devices() timeout_retry.WaitFor(fastboot_mode, wait_period=self._FASTBOOT_WAIT_TIME)
diff --git a/systrace/catapult/devil/devil/android/flag_changer.py b/systrace/catapult/devil/devil/android/flag_changer.py index 110cf82..0055e23 100644 --- a/systrace/catapult/devil/devil/android/flag_changer.py +++ b/systrace/catapult/devil/devil/android/flag_changer.py
@@ -52,14 +52,12 @@ once the tests have completed. """ - def __init__(self, device, cmdline_file, use_legacy_path=False): + def __init__(self, device, cmdline_file): """Initializes the FlagChanger and records the original arguments. Args: device: A DeviceUtils instance. cmdline_file: Name of the command line file where to store flags. - use_legacy_path: Whether to use the legacy commandline path (needed for - M54 and earlier) """ self._device = device self._should_reset_enforce = False @@ -68,20 +66,13 @@ raise ValueError( 'cmdline_file should be a file name only, do not include path' ' separators in: %s' % cmdline_file) - cmdline_path = posixpath.join(_CMDLINE_DIR, cmdline_file) - alternate_cmdline_path = posixpath.join(_CMDLINE_DIR_LEGACY, cmdline_file) + self._cmdline_path = posixpath.join(_CMDLINE_DIR, cmdline_file) - if use_legacy_path: - cmdline_path, alternate_cmdline_path = ( - alternate_cmdline_path, cmdline_path) - if not self._device.HasRoot(): - raise ValueError('use_legacy_path requires a rooted device') - self._cmdline_path = cmdline_path - - if self._device.PathExists(alternate_cmdline_path): + cmdline_path_legacy = posixpath.join(_CMDLINE_DIR_LEGACY, cmdline_file) + if self._device.PathExists(cmdline_path_legacy): logger.warning( - 'Removing alternate command line file %r.', alternate_cmdline_path) - self._device.RemovePath(alternate_cmdline_path, as_root=True) + 'Removing legacy command line file %r.', cmdline_path_legacy) + self._device.RemovePath(cmdline_path_legacy, as_root=True) self._state_stack = [None] # Actual state is set by GetCurrentFlags(). self.GetCurrentFlags() @@ -95,8 +86,7 @@ A list of flags. """ if self._device.PathExists(self._cmdline_path): - command_line = self._device.ReadFile( - self._cmdline_path, as_root=True).strip() + command_line = self._device.ReadFile(self._cmdline_path).strip() else: command_line = '' flags = _ParseFlags(command_line) @@ -105,7 +95,7 @@ self._state_stack[-1] = set(flags) return flags - def ReplaceFlags(self, flags, log_flags=True): + def ReplaceFlags(self, flags): """Replaces the flags in the command line with the ones provided. Saves the current flags state on the stack, so a call to Restore will change the state back to the one preceeding the call to ReplaceFlags. @@ -121,7 +111,7 @@ new_flags = set(flags) self._state_stack.append(new_flags) self._SetPermissive() - return self._UpdateCommandLineFile(log_flags=log_flags) + return self._UpdateCommandLineFile() def AddFlags(self, flags): """Appends flags to the command line if they aren't already there. @@ -181,14 +171,10 @@ """Set SELinux to permissive, if needed. On Android N and above this is needed in order to allow Chrome to read the - legacy command line file. + command line file. TODO(crbug.com/699082): Remove when a better solution exists. """ - # TODO(crbug.com/948578): figure out the exact scenarios where the lowered - # permissions are needed, and document them in the code. - if not self._device.HasRoot(): - return if (self._device.build_version_sdk >= version_codes.NOUGAT and self._device.GetEnforce()): self._device.SetEnforce(enabled=False) @@ -209,13 +195,13 @@ """ # The initial state must always remain on the stack. assert len(self._state_stack) > 1, ( - 'Mismatch between calls to Add/RemoveFlags and Restore') + "Mismatch between calls to Add/RemoveFlags and Restore") self._state_stack.pop() if len(self._state_stack) == 1: self._ResetEnforce() return self._UpdateCommandLineFile() - def _UpdateCommandLineFile(self, log_flags=True): + def _UpdateCommandLineFile(self): """Writes out the command line to the file, or removes it if empty. Returns: @@ -223,15 +209,13 @@ """ command_line = _SerializeFlags(self._state_stack[-1]) if command_line is not None: - self._device.WriteFile(self._cmdline_path, command_line, as_root=True) + self._device.WriteFile(self._cmdline_path, command_line) else: - self._device.RemovePath(self._cmdline_path, force=True, as_root=True) + self._device.RemovePath(self._cmdline_path, force=True) - flags = self.GetCurrentFlags() - logging.info('Flags now written on the device to %s', self._cmdline_path) - if log_flags: - logging.info('Flags: %s', flags) - return flags + current_flags = self.GetCurrentFlags() + logger.info('Flags now set on the device: %s', current_flags) + return current_flags def _ParseFlags(line): @@ -253,7 +237,6 @@ current_quote = None current_flag = None - # pylint: disable=unsubscriptable-object for c in line: # Detect start or end of quote block. if (current_quote is None and c in _QUOTES) or c == current_quote:
diff --git a/systrace/catapult/devil/devil/android/flag_changer_test.py b/systrace/catapult/devil/devil/android/flag_changer_test.py index dbe6fac..5342cf4 100755 --- a/systrace/catapult/devil/devil/android/flag_changer_test.py +++ b/systrace/catapult/devil/devil/android/flag_changer_test.py
@@ -42,7 +42,7 @@ self.cmdline_path_legacy = posixpath.join( flag_changer._CMDLINE_DIR_LEGACY, _CMDLINE_FILE) - def testFlagChanger_removeAlternateCmdLine(self): + def testFlagChanger_removeLegacyCmdLine(self): self.device.WriteFile(self.cmdline_path_legacy, 'chrome --old --stuff') self.assertTrue(self.device.PathExists(self.cmdline_path_legacy)) @@ -52,17 +52,6 @@ self.cmdline_path) self.assertFalse(self.device.PathExists(self.cmdline_path_legacy)) - def testFlagChanger_removeAlternateCmdLineLegacyPath(self): - self.device.WriteFile(self.cmdline_path, 'chrome --old --stuff') - self.assertTrue(self.device.PathExists(self.cmdline_path)) - - changer = flag_changer.FlagChanger(self.device, 'chrome-command-line', - use_legacy_path=True) - self.assertEquals( - changer._cmdline_path, # pylint: disable=protected-access - self.cmdline_path_legacy) - self.assertFalse(self.device.PathExists(self.cmdline_path)) - def testFlagChanger_mustBeFileName(self): with self.assertRaises(ValueError): flag_changer.FlagChanger(self.device, '/data/local/chrome-command-line')
diff --git a/systrace/catapult/devil/devil/android/forwarder.py b/systrace/catapult/devil/devil/android/forwarder.py index 6be4651..cf1fbe1 100644 --- a/systrace/catapult/devil/devil/android/forwarder.py +++ b/systrace/catapult/devil/devil/android/forwarder.py
@@ -306,7 +306,7 @@ instance = Forwarder._GetInstanceLocked(None) serial = str(device) serial_with_port = (serial, device_port) - if serial_with_port not in instance._device_to_host_port_map: + if not serial_with_port in instance._device_to_host_port_map: logger.error('Trying to unmap non-forwarded port %d', device_port) return
diff --git a/systrace/catapult/devil/devil/android/logcat_monitor.py b/systrace/catapult/devil/devil/android/logcat_monitor.py index b5f796b..249320b 100644 --- a/systrace/catapult/devil/devil/android/logcat_monitor.py +++ b/systrace/catapult/devil/devil/android/logcat_monitor.py
@@ -31,7 +31,7 @@ r'(?P<log_level>%s) +(?P<component>%s) *: +(?P<message>%s)$') def __init__(self, adb, clear=True, filter_specs=None, output_file=None, - transform_func=None, check_error=True): + transform_func=None): """Create a LogcatMonitor instance. Args: @@ -41,14 +41,11 @@ output_file: File path to save recorded logcat. transform_func: An optional unary callable that takes and returns a list of lines, possibly transforming them in the process. - check_error: Check for and raise an exception on nonzero exit codes - from the underlying logcat command. """ if isinstance(adb, adb_wrapper.AdbWrapper): self._adb = adb else: raise ValueError('Unsupported type passed for argument "device"') - self._check_error = check_error self._clear = clear self._filter_specs = filter_specs self._output_file = output_file @@ -171,11 +168,9 @@ def record_to_file(): # Write the log with line buffering so the consumer sees each individual # line. - for data in self._adb.Logcat( - filter_specs=self._filter_specs, - logcat_format='threadtime', - iter_timeout=self._RECORD_ITER_TIMEOUT, - check_error=self._check_error): + for data in self._adb.Logcat(filter_specs=self._filter_specs, + logcat_format='threadtime', + iter_timeout=self._RECORD_ITER_TIMEOUT): if self._stop_recording_event.isSet(): return
diff --git a/systrace/catapult/devil/devil/android/md5sum.py b/systrace/catapult/devil/devil/android/md5sum.py index f5b6f3c..6dece9e 100644 --- a/systrace/catapult/devil/devil/android/md5sum.py +++ b/systrace/catapult/devil/devil/android/md5sum.py
@@ -89,8 +89,7 @@ # Note: ":" is equivalent to "true". md5sum_script += ';:' try: - out = device.RunShellCommand( - md5sum_script, shell=True, check_return=True, large_output=True) + out = device.RunShellCommand(md5sum_script, shell=True, check_return=True) except device_errors.AdbShellCommandFailedError as e: # Push the binary only if it is found to not exist # (faster than checking up-front). @@ -107,8 +106,7 @@ device.RunShellCommand(mkdir_cmd, shell=True, check_return=True) device.adb.Push(md5sum_dist_bin_path, MD5SUM_DEVICE_BIN_PATH) - out = device.RunShellCommand( - md5sum_script, shell=True, check_return=True, large_output=True) + out = device.RunShellCommand(md5sum_script, shell=True, check_return=True) else: raise
diff --git a/systrace/catapult/devil/devil/android/ndk/__init__.py b/systrace/catapult/devil/devil/android/ndk/__init__.py deleted file mode 100644 index edd8dbc..0000000 --- a/systrace/catapult/devil/devil/android/ndk/__init__.py +++ /dev/null
@@ -1,6 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# This package is intended for modules that are very tightly coupled to -# tools or APIs from the Android NDK.
diff --git a/systrace/catapult/devil/devil/android/ndk/abis.py b/systrace/catapult/devil/devil/android/ndk/abis.py deleted file mode 100644 index dd32f7c..0000000 --- a/systrace/catapult/devil/devil/android/ndk/abis.py +++ /dev/null
@@ -1,16 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Android NDK ABIs. - -https://developer.android.com/ndk/guides/abis - -These constants can be compared against the value of -devil.android.DeviceUtils.product_cpu_abi. -""" - -ARM = 'armeabi-v7a' -ARM_64 = 'arm64-v8a' -X86 = 'x86' -X86_64 = 'x86_64'
diff --git a/systrace/catapult/devil/devil/android/perf/perf_control.py b/systrace/catapult/devil/devil/android/perf/perf_control.py index 1226be8..06a5db6 100644 --- a/systrace/catapult/devil/devil/android/perf/perf_control.py +++ b/systrace/catapult/devil/devil/android/perf/perf_control.py
@@ -9,116 +9,6 @@ from devil.android import device_errors logger = logging.getLogger(__name__) -_atexit_messages = set() - - -# Defines how to switch between the default performance configuration -# ('default_mode') and the mode for use when benchmarking ('high_perf_mode'). -# For devices not in the list the defaults are to set up the scaling governor to -# 'performance' and reset it back to 'ondemand' when benchmarking is finished. -# -# The 'default_mode_governor' is mandatory to define, while -# 'high_perf_mode_governor' is not taken into account. The latter is because the -# governor 'performance' is currently used for all benchmarking on all devices. -# -# TODO(crbug.com/383566): Add definitions for all devices used in the perf -# waterfall. -_PERFORMANCE_MODE_DEFINITIONS = { - # Fire TV Edition - 4K - 'AFTKMST12': { - 'default_mode_governor': 'interactive', - }, - # Pixel 3 - 'blueline': { - 'high_perf_mode': { - 'bring_cpu_cores_online': True, - # The SoC is Arm big.LITTLE. The cores 0..3 are LITTLE, the 4..7 are big. - 'cpu_max_freq': {'0..3': 1228800, '4..7': 1536000}, - 'gpu_max_freq': 520000000, - }, - 'default_mode': { - 'cpu_max_freq': {'0..3': 1766400, '4..7': 2649600}, - 'gpu_max_freq': 710000000, - }, - 'default_mode_governor': 'schedutil', - }, - 'GT-I9300': { - 'default_mode_governor': 'pegasusq', - }, - 'Galaxy Nexus': { - 'default_mode_governor': 'interactive', - }, - # Pixel - 'msm8996': { - 'high_perf_mode': { - 'bring_cpu_cores_online': True, - 'cpu_max_freq': 1209600, - 'gpu_max_freq': 315000000, - }, - 'default_mode': { - # The SoC is Arm big.LITTLE. The cores 0..1 are LITTLE, the 2..3 are big. - 'cpu_max_freq': {'0..1': 1593600, '2..3': 2150400}, - 'gpu_max_freq': 624000000, - }, - 'default_mode_governor': 'sched', - }, - 'Nexus 7': { - 'default_mode_governor': 'interactive', - }, - 'Nexus 10': { - 'default_mode_governor': 'interactive', - }, - 'Nexus 4': { - 'high_perf_mode': { - 'bring_cpu_cores_online': True, - }, - 'default_mode_governor': 'ondemand', - }, - 'Nexus 5': { - # The list of possible GPU frequency values can be found in: - # /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies. - # For CPU cores the possible frequency values are at: - # /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies - 'high_perf_mode': { - 'bring_cpu_cores_online': True, - 'cpu_max_freq': 1190400, - 'gpu_max_freq': 200000000, - }, - 'default_mode': { - 'cpu_max_freq': 2265600, - 'gpu_max_freq': 450000000, - }, - 'default_mode_governor': 'ondemand', - }, - 'Nexus 5X': { - 'high_perf_mode': { - 'bring_cpu_cores_online': True, - 'cpu_max_freq': 1248000, - 'gpu_max_freq': 300000000, - }, - 'default_mode': { - 'governor': 'ondemand', - # The SoC is ARM big.LITTLE. The cores 4..5 are big, the 0..3 are LITTLE. - 'cpu_max_freq': {'0..3': 1440000, '4..5': 1824000}, - 'gpu_max_freq': 600000000, - }, - 'default_mode_governor': 'ondemand', - }, -} - -def _GetPerfModeDefinitions(product_model): - if product_model.startswith('AOSP on '): - product_model = product_model.replace('AOSP on ', '') - return _PERFORMANCE_MODE_DEFINITIONS.get(product_model) - -def _NoisyWarning(message): - message += ' Results may be NOISY!!' - logger.warning(message) - # Add an additional warning at exit, such that it's clear that any results - # may be different/noisy (due to the lack of intended performance mode). - if message not in _atexit_messages: - _atexit_messages.add(message) - atexit.register(logger.warning, message) class PerfControl(object): @@ -131,10 +21,10 @@ def __init__(self, device): self._device = device - self._cpu_files = [] - for file_name in self._device.ListDirectory(self._CPU_PATH, as_root=True): - if self._CPU_FILE_PATTERN.match(file_name): - self._cpu_files.append(file_name) + self._cpu_files = [ + filename + for filename in self._device.ListDirectory(self._CPU_PATH, as_root=True) + if self._CPU_FILE_PATTERN.match(filename)] assert self._cpu_files, 'Failed to detect CPUs.' self._cpu_file_list = ' '.join(self._cpu_files) logger.info('CPUs found: %s', self._cpu_file_list) @@ -146,73 +36,34 @@ (cpu, raw_governors.strip().split() if not exit_code else None) for cpu, raw_governors, exit_code in raw] - def _SetMaxFrequenciesFromMode(self, mode): - """Set maximum frequencies for GPU and CPU cores. - - Args: - mode: A dictionary mapping optional keys 'cpu_max_freq' and 'gpu_max_freq' - to integer values of frequency supported by the device. - """ - cpu_max_freq = mode.get('cpu_max_freq') - if cpu_max_freq: - if not isinstance(cpu_max_freq, dict): - self._SetScalingMaxFreqForCpus(cpu_max_freq, self._cpu_file_list) - else: - for key, max_frequency in cpu_max_freq.iteritems(): - # Convert 'X' to 'cpuX' and 'X..Y' to 'cpuX cpu<X+1> .. cpuY'. - if '..' in key: - range_min, range_max = key.split('..') - range_min, range_max = int(range_min), int(range_max) - else: - range_min = range_max = int(key) - cpu_files = ['cpu%d' % number - for number in xrange(range_min, range_max + 1)] - # Set the |max_frequency| on requested subset of the cores. - self._SetScalingMaxFreqForCpus(max_frequency, ' '.join(cpu_files)) - gpu_max_freq = mode.get('gpu_max_freq') - if gpu_max_freq: - self._SetMaxGpuClock(gpu_max_freq) - def SetHighPerfMode(self): """Sets the highest stable performance mode for the device.""" try: self._device.EnableRoot() except device_errors.CommandFailedError: - _NoisyWarning('Need root for performance mode.') + message = 'Need root for performance mode. Results may be NOISY!!' + logger.warning(message) + # Add an additional warning at exit, such that it's clear that any results + # may be different/noisy (due to the lack of intended performance mode). + atexit.register(logger.warning, message) return - mode_definitions = _GetPerfModeDefinitions(self._device.product_model) - if not mode_definitions: - self.SetScalingGovernor('performance') - return - high_perf_mode = mode_definitions.get('high_perf_mode') - if not high_perf_mode: - self.SetScalingGovernor('performance') - return - if high_perf_mode.get('bring_cpu_cores_online', False): + + product_model = self._device.product_model + # TODO(epenner): Enable on all devices (http://crbug.com/383566) + if 'Nexus 4' == product_model: self._ForceAllCpusOnline(True) if not self._AllCpusAreOnline(): - _NoisyWarning('Failed to force CPUs online.') - # Scaling governor must be set _after_ bringing all CPU cores online, - # otherwise it would not affect the cores that are currently offline. - self.SetScalingGovernor('performance') - self._SetMaxFrequenciesFromMode(high_perf_mode) - - def SetDefaultPerfMode(self): - """Sets the performance mode for the device to its default mode.""" - if not self._device.HasRoot(): - return - mode_definitions = _GetPerfModeDefinitions(self._device.product_model) - if not mode_definitions: - self.SetScalingGovernor('ondemand') + logger.warning('Failed to force CPUs online. Results may be NOISY!') + self.SetScalingGovernor('performance') + elif 'Nexus 5' == product_model: + self._ForceAllCpusOnline(True) + if not self._AllCpusAreOnline(): + logger.warning('Failed to force CPUs online. Results may be NOISY!') + self.SetScalingGovernor('performance') + self._SetScalingMaxFreq(1190400) + self._SetMaxGpuClock(200000000) else: - default_mode_governor = mode_definitions.get('default_mode_governor') - assert default_mode_governor, ('Default mode governor must be provided ' - 'for all perf mode definitions.') - self.SetScalingGovernor(default_mode_governor) - default_mode = mode_definitions.get('default_mode') - if default_mode: - self._SetMaxFrequenciesFromMode(default_mode) - self._ForceAllCpusOnline(False) + self.SetScalingGovernor('performance') def SetPerfProfilingMode(self): """Enables all cores for reliable perf profiling.""" @@ -223,6 +74,27 @@ raise RuntimeError('Need root to force CPUs online.') raise RuntimeError('Failed to force CPUs online.') + def SetDefaultPerfMode(self): + """Sets the performance mode for the device to its default mode.""" + if not self._device.HasRoot(): + return + product_model = self._device.product_model + if 'Nexus 5' == product_model: + if self._AllCpusAreOnline(): + self._SetScalingMaxFreq(2265600) + self._SetMaxGpuClock(450000000) + + governor_mode = { + 'GT-I9300': 'pegasusq', + 'Galaxy Nexus': 'interactive', + 'Nexus 4': 'ondemand', + 'Nexus 5': 'ondemand', + 'Nexus 7': 'interactive', + 'Nexus 10': 'interactive' + }.get(product_model, 'ondemand') + self.SetScalingGovernor(governor_mode) + self._ForceAllCpusOnline(False) + def GetCpuInfo(self): online = (output.rstrip() == '1' and status == 0 for (_, output, status) in self._ForEachCpu('cat "$CPU/online"')) @@ -231,24 +103,9 @@ in self._ForEachCpu('cat "$CPU/cpufreq/scaling_governor"')) return zip(self._cpu_files, online, governor) - def _ForEachCpu(self, cmd, cpu_list=None): - """Runs a command on the device for each of the CPUs. - - Args: - cmd: A string with a shell command, may may use shell expansion: "$CPU" to - refer to the current CPU in the string form (e.g. "cpu0", "cpu1", - and so on). - cpu_list: A space-separated string of CPU core names, like in the example - above - Returns: - A list of tuples in the form (cpu_string, command_output, exit_code), one - tuple per each command invocation. As usual, all lines of the output - command are joined into one line with spaces. - """ - if cpu_list is None: - cpu_list = self._cpu_file_list + def _ForEachCpu(self, cmd): script = '; '.join([ - 'for CPU in %s' % cpu_list, + 'for CPU in %s' % self._cpu_file_list, 'do %s' % cmd, 'echo -n "%~%$?%~%"', 'done' @@ -258,20 +115,20 @@ output = '\n'.join(output).split('%~%') return zip(self._cpu_files, output[0::2], (int(c) for c in output[1::2])) - def _ConditionallyWriteCpuFiles(self, path, value, cpu_files, condition): + def _WriteEachCpuFile(self, path, value): + self._ConditionallyWriteEachCpuFile(path, value, condition='true') + + def _ConditionallyWriteEachCpuFile(self, path, value, condition): template = ( '{condition} && test -e "$CPU/{path}" && echo {value} > "$CPU/{path}"') results = self._ForEachCpu( - template.format(path=path, value=value, condition=condition), cpu_files) + template.format(path=path, value=value, condition=condition)) cpus = ' '.join(cpu for (cpu, _, status) in results if status == 0) if cpus: logger.info('Successfully set %s to %r on: %s', path, value, cpus) else: logger.warning('Failed to set %s to %r on any cpus', path, value) - def _WriteCpuFiles(self, path, value, cpu_files): - self._ConditionallyWriteCpuFiles(path, value, cpu_files, condition='true') - def _ReadEachCpuFile(self, path): return self._ForEachCpu( 'cat "$CPU/{path}"'.format(path=path)) @@ -288,8 +145,8 @@ condition = 'test -e "{path}" && grep -q {value} {path}'.format( path=('${CPU}/%s' % self._AVAILABLE_GOVERNORS_REL_PATH), value=value) - self._ConditionallyWriteCpuFiles( - 'cpufreq/scaling_governor', value, self._cpu_file_list, condition) + self._ConditionallyWriteEachCpuFile( + 'cpufreq/scaling_governor', value, condition) def GetScalingGovernor(self): """Gets the currently set governor for each CPU. @@ -312,8 +169,8 @@ """ return self._available_governors - def _SetScalingMaxFreqForCpus(self, value, cpu_files): - self._WriteCpuFiles('cpufreq/scaling_max_freq', '%d' % value, cpu_files) + def _SetScalingMaxFreq(self, value): + self._WriteEachCpuFile('cpufreq/scaling_max_freq', '%d' % value) def _SetMaxGpuClock(self, value): self._device.WriteFile('/sys/class/kgsl/kgsl-3d0/max_gpuclk', @@ -322,9 +179,8 @@ def _AllCpusAreOnline(self): results = self._ForEachCpu('cat "$CPU/online"') - # The file 'cpu0/online' is missing on some devices (example: Nexus 9). This - # is likely because on these devices it is impossible to bring the cpu0 - # offline. Assuming the same for all devices until proven otherwise. + # TODO(epenner): Investigate why file may be missing + # (http://crbug.com/397118) return all(output.rstrip() == '1' and status == 0 for (cpu, output, status) in results if cpu != 'cpu0')
diff --git a/systrace/catapult/devil/devil/android/perf/perf_control_test.py b/systrace/catapult/devil/devil/android/perf/perf_control_test.py deleted file mode 100644 index 3832424..0000000 --- a/systrace/catapult/devil/devil/android/perf/perf_control_test.py +++ /dev/null
@@ -1,105 +0,0 @@ -# Copyright 2018 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import unittest - -from devil import devil_env -from devil.android import device_utils -from devil.android.perf import perf_control -from devil.android.sdk import adb_wrapper - -with devil_env.SysPath(devil_env.PYMOCK_PATH): - import mock - - -# pylint: disable=unused-argument -def _ShellCommandHandler(cmd, shell=False, check_return=False, - cwd=None, env=None, run_as=None, as_root=False, single_line=False, - large_output=False, raw_output=False, timeout=None, retries=None): - if cmd.startswith('for CPU in '): - if 'scaling_available_governors' in cmd: - contents = 'interactive ondemand userspace powersave performance' - return [contents + '\n%~%0%~%'] * 4 - if 'cat "$CPU/online"' in cmd: - return ['1\n%~%0%~%'] * 4 - assert False, 'Should not be called with cmd: {}'.format(cmd) - - -class PerfControlTest(unittest.TestCase): - @staticmethod - def _MockOutLowLevelPerfControlMethods(perf_control_object): - # pylint: disable=protected-access - perf_control_object.SetScalingGovernor = mock.Mock() - perf_control_object._ForceAllCpusOnline = mock.Mock() - perf_control_object._SetScalingMaxFreqForCpus = mock.Mock() - perf_control_object._SetMaxGpuClock = mock.Mock() - - # pylint: disable=no-self-use - def testNexus5HighPerfMode(self): - # Mock out the device state for PerfControl. - cpu_list = ['cpu%d' % cpu for cpu in xrange(4)] - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.product_model = 'Nexus 5' - mock_device.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) - mock_device.ListDirectory.return_value = cpu_list + ['cpufreq'] - mock_device.FileExists.return_value = True - mock_device.RunShellCommand = mock.Mock(side_effect=_ShellCommandHandler) - pc = perf_control.PerfControl(mock_device) - self._MockOutLowLevelPerfControlMethods(pc) - - # Verify. - # pylint: disable=protected-access - # pylint: disable=no-member - pc.SetHighPerfMode() - mock_device.EnableRoot.assert_called_once_with() - pc._ForceAllCpusOnline.assert_called_once_with(True) - pc.SetScalingGovernor.assert_called_once_with('performance') - pc._SetScalingMaxFreqForCpus.assert_called_once_with( - 1190400, ' '.join(cpu_list)) - pc._SetMaxGpuClock.assert_called_once_with(200000000) - - def testNexus5XHighPerfMode(self): - # Mock out the device state for PerfControl. - cpu_list = ['cpu%d' % cpu for cpu in xrange(6)] - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.product_model = 'Nexus 5X' - mock_device.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) - mock_device.ListDirectory.return_value = cpu_list + ['cpufreq'] - mock_device.FileExists.return_value = True - mock_device.RunShellCommand = mock.Mock(side_effect=_ShellCommandHandler) - pc = perf_control.PerfControl(mock_device) - self._MockOutLowLevelPerfControlMethods(pc) - - # Verify. - # pylint: disable=protected-access - # pylint: disable=no-member - pc.SetHighPerfMode() - mock_device.EnableRoot.assert_called_once_with() - pc._ForceAllCpusOnline.assert_called_once_with(True) - pc.SetScalingGovernor.assert_called_once_with('performance') - pc._SetScalingMaxFreqForCpus.assert_called_once_with( - 1248000, ' '.join(cpu_list)) - pc._SetMaxGpuClock.assert_called_once_with(300000000) - - def testNexus5XDefaultPerfMode(self): - # Mock out the device state for PerfControl. - cpu_list = ['cpu%d' % cpu for cpu in xrange(6)] - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.product_model = 'Nexus 5X' - mock_device.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) - mock_device.ListDirectory.return_value = cpu_list + ['cpufreq'] - mock_device.FileExists.return_value = True - mock_device.RunShellCommand = mock.Mock(side_effect=_ShellCommandHandler) - pc = perf_control.PerfControl(mock_device) - self._MockOutLowLevelPerfControlMethods(pc) - - # Verify. - # pylint: disable=protected-access - # pylint: disable=no-member - pc.SetDefaultPerfMode() - pc.SetScalingGovernor.assert_called_once_with('ondemand') - pc._SetScalingMaxFreqForCpus.assert_any_call(1440000, 'cpu0 cpu1 cpu2 cpu3') - pc._SetScalingMaxFreqForCpus.assert_any_call(1824000, 'cpu4 cpu5') - pc._SetMaxGpuClock.assert_called_once_with(600000000) - pc._ForceAllCpusOnline.assert_called_once_with(False)
diff --git a/systrace/catapult/devil/devil/android/perf/surface_stats_collector.py b/systrace/catapult/devil/devil/android/perf/surface_stats_collector.py index f1140c1..eab493d 100644 --- a/systrace/catapult/devil/devil/android/perf/surface_stats_collector.py +++ b/systrace/catapult/devil/devil/android/perf/surface_stats_collector.py
@@ -2,9 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import logging import Queue -import re import threading @@ -118,14 +116,6 @@ except StopIteration: raise Exception('Unable to get surface flinger process id') - def _GetSurfaceViewWindowName(self): - results = self._device.RunShellCommand( - ['dumpsys', 'SurfaceFlinger', '--list'], check_return=True) - for window_name in results: - if window_name.startswith('SurfaceView'): - return window_name - return None - def _GetSurfaceFlingerFrameData(self): """Returns collected SurfaceFlinger frame timing data. @@ -137,73 +127,59 @@ The return value may be (None, None) if there was no data collected (for example, if the app was closed before the collector thread has finished). """ - window_name = self._GetSurfaceViewWindowName() - command = ['dumpsys', 'SurfaceFlinger', '--latency'] - # Even if we don't find the window name, run the command to get the refresh - # period. - if window_name: - command.append(window_name) - output = self._device.RunShellCommand(command, check_return=True) - return ParseFrameData(output, parse_timestamps=bool(window_name)) + # adb shell dumpsys SurfaceFlinger --latency <window name> + # prints some information about the last 128 frames displayed in + # that window. + # The data returned looks like this: + # 16954612 + # 7657467895508 7657482691352 7657493499756 + # 7657484466553 7657499645964 7657511077881 + # 7657500793457 7657516600576 7657527404785 + # (...) + # + # The first line is the refresh period (here 16.95 ms), it is followed + # by 128 lines w/ 3 timestamps in nanosecond each: + # A) when the app started to draw + # B) the vsync immediately preceding SF submitting the frame to the h/w + # C) timestamp immediately after SF submitted that frame to the h/w + # + # The difference between the 1st and 3rd timestamp is the frame-latency. + # An interesting data is when the frame latency crosses a refresh period + # boundary, this can be calculated this way: + # + # ceil((C - A) / refresh-period) + # + # (each time the number above changes, we have a "jank"). + # If this happens a lot during an animation, the animation appears + # janky, even if it runs at 60 fps in average. + # + # We use the special "SurfaceView" window name because the statistics for + # the activity's main window are not updated when the main web content is + # composited into a SurfaceView. + results = self._device.RunShellCommand( + ['dumpsys', 'SurfaceFlinger', '--latency', 'SurfaceView'], + check_return=True) + if not len(results): + return (None, None) + timestamps = [] + nanoseconds_per_millisecond = 1e6 + refresh_period = long(results[0]) / nanoseconds_per_millisecond -def ParseFrameData(lines, parse_timestamps): - # adb shell dumpsys SurfaceFlinger --latency <window name> - # prints some information about the last 128 frames displayed in - # that window. - # The data returned looks like this: - # 16954612 - # 7657467895508 7657482691352 7657493499756 - # 7657484466553 7657499645964 7657511077881 - # 7657500793457 7657516600576 7657527404785 - # (...) - # - # The first line is the refresh period (here 16.95 ms), it is followed - # by 128 lines w/ 3 timestamps in nanosecond each: - # A) when the app started to draw - # B) the vsync immediately preceding SF submitting the frame to the h/w - # C) timestamp immediately after SF submitted that frame to the h/w - # - # The difference between the 1st and 3rd timestamp is the frame-latency. - # An interesting data is when the frame latency crosses a refresh period - # boundary, this can be calculated this way: - # - # ceil((C - A) / refresh-period) - # - # (each time the number above changes, we have a "jank"). - # If this happens a lot during an animation, the animation appears - # janky, even if it runs at 60 fps in average. - results = [] - for line in lines: - # Skip over lines with anything other than digits and whitespace. - if re.search(r'[^\d\s]', line): - logging.warning('unexpected output: %s', line) - else: - results.append(line) - if not results: - return None, None + # If a fence associated with a frame is still pending when we query the + # latency data, SurfaceFlinger gives the frame a timestamp of INT64_MAX. + # Since we only care about completed frames, we will ignore any timestamps + # with this value. + pending_fence_timestamp = (1 << 63) - 1 - timestamps = [] - nanoseconds_per_millisecond = 1e6 - refresh_period = long(results[0]) / nanoseconds_per_millisecond - if not parse_timestamps: - return refresh_period, timestamps + for line in results[1:]: + fields = line.split() + if len(fields) != 3: + continue + timestamp = long(fields[1]) + if timestamp == pending_fence_timestamp: + continue + timestamp /= nanoseconds_per_millisecond + timestamps.append(timestamp) - # If a fence associated with a frame is still pending when we query the - # latency data, SurfaceFlinger gives the frame a timestamp of INT64_MAX. - # Since we only care about completed frames, we will ignore any timestamps - # with this value. - pending_fence_timestamp = (1 << 63) - 1 - - for line in results[1:]: - fields = line.split() - if len(fields) != 3: - logging.warning('Unexpected line: %s', line) - continue - timestamp = long(fields[1]) - if timestamp == pending_fence_timestamp: - continue - timestamp /= nanoseconds_per_millisecond - timestamps.append(timestamp) - - return refresh_period, timestamps + return (refresh_period, timestamps)
diff --git a/systrace/catapult/devil/devil/android/perf/surface_stats_collector_test.py b/systrace/catapult/devil/devil/android/perf/surface_stats_collector_test.py deleted file mode 100644 index 13b345c..0000000 --- a/systrace/catapult/devil/devil/android/perf/surface_stats_collector_test.py +++ /dev/null
@@ -1,40 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import unittest - -from devil.android.perf import surface_stats_collector - - -class SurfaceStatsCollectorTests(unittest.TestCase): - def testParseFrameData_simple(self): - actual = surface_stats_collector.ParseFrameData([ - '16954612', - '7657467895508 7657482691352 7657493499756', - '7657484466553 7657499645964 7657511077881', - '7657500793457 7657516600576 7657527404785', - ], parse_timestamps=True) - self.assertEqual( - actual, (16.954612, [7657482.691352, 7657499.645964, 7657516.600576])) - - def testParseFrameData_withoutTimestamps(self): - actual = surface_stats_collector.ParseFrameData([ - '16954612', - '7657467895508 7657482691352 7657493499756', - '7657484466553 7657499645964 7657511077881', - '7657500793457 7657516600576 7657527404785', - ], parse_timestamps=False) - self.assertEqual( - actual, (16.954612, [])) - - def testParseFrameData_withWarning(self): - actual = surface_stats_collector.ParseFrameData([ - 'SurfaceFlinger appears to be unresponsive, dumping anyways', - '16954612', - '7657467895508 7657482691352 7657493499756', - '7657484466553 7657499645964 7657511077881', - '7657500793457 7657516600576 7657527404785', - ], parse_timestamps=True) - self.assertEqual( - actual, (16.954612, [7657482.691352, 7657499.645964, 7657516.600576]))
diff --git a/systrace/catapult/devil/devil/android/perf/thermal_throttle.py b/systrace/catapult/devil/devil/android/perf/thermal_throttle.py index fd6b08f..546a92e 100644 --- a/systrace/catapult/devil/devil/android/perf/thermal_throttle.py +++ b/systrace/catapult/devil/devil/android/perf/thermal_throttle.py
@@ -76,7 +76,6 @@ self._device = device self._throttled = False self._detector = None - # pylint: disable=redefined-variable-type if OmapThrottlingDetector.IsSupported(device): self._detector = OmapThrottlingDetector(device) elif ExynosThrottlingDetector.IsSupported(device):
diff --git a/systrace/catapult/devil/devil/android/ports.py b/systrace/catapult/devil/devil/android/ports.py index 4547a62..1d4e5f2 100644 --- a/systrace/catapult/devil/devil/android/ports.py +++ b/systrace/catapult/devil/devil/android/ports.py
@@ -116,7 +116,7 @@ """ base_urls = ('127.0.0.1:%d' % device_port, 'localhost:%d' % device_port) netstat_results = device.RunShellCommand( - ['netstat', '-an'], check_return=True, large_output=True) + ['netstat', '-a'], check_return=True, large_output=True) for single_connect in netstat_results: # Column 3 is the local address which we want to check with. connect_results = single_connect.split()
diff --git a/systrace/catapult/devil/devil/android/sdk/adb_wrapper.py b/systrace/catapult/devil/devil/android/sdk/adb_wrapper.py index 13c0f52..5d24d47 100644 --- a/systrace/catapult/devil/devil/android/sdk/adb_wrapper.py +++ b/systrace/catapult/devil/devil/android/sdk/adb_wrapper.py
@@ -9,9 +9,7 @@ """ import collections -# pylint: disable=import-error -# pylint: disable=no-name-in-module -import distutils.version as du_version +import distutils.version import errno import logging import os @@ -19,7 +17,6 @@ import re import subprocess -from devil import base_error from devil import devil_env from devil.android import decorators from devil.android import device_errors @@ -34,7 +31,6 @@ ADB_KEYS_FILE = '/data/misc/adb/adb_keys' -ADB_HOST_KEYS_DIR = os.path.join(os.path.expanduser('~'), '.android') DEFAULT_TIMEOUT = 30 DEFAULT_RETRIES = 2 @@ -43,10 +39,8 @@ _EMULATOR_RE = re.compile(r'^emulator-[0-9]+$') _DEVICE_NOT_FOUND_RE = re.compile(r"error: device '(?P<serial>.+)' not found") _READY_STATE = 'device' -_VERITY_DISABLE_RE = re.compile(r'(V|v)erity (is )?(already )?disabled' - r'|Successfully disabled verity') -_VERITY_ENABLE_RE = re.compile(r'(V|v)erity (is )?(already )?enabled' - r'|Successfully enabled verity') +_VERITY_DISABLE_RE = re.compile(r'Verity (already )?disabled') +_VERITY_ENABLE_RE = re.compile(r'Verity (already )?enabled') _WAITING_FOR_DEVICE_RE = re.compile(r'- waiting for device -') @@ -98,11 +92,7 @@ def _ShouldRetryAdbCmd(exc): - # Errors are potentially transient and should be retried, with the exception - # of NoAdbError. Exceptions [e.g. generated from SIGTERM handler] should be - # raised. - return (isinstance(exc, base_error.BaseError) and - not isinstance(exc, device_errors.NoAdbError)) + return not isinstance(exc, device_errors.NoAdbError) DeviceStat = collections.namedtuple('DeviceStat', @@ -263,22 +253,13 @@ @classmethod @decorators.WithTimeoutAndConditionalRetries(_ShouldRetryAdbCmd) def _RunAdbCmd(cls, args, timeout=None, retries=None, device_serial=None, - check_error=True, cpu_affinity=None, additional_env=None): - if timeout: - remaining = timeout_retry.CurrentTimeoutThreadGroup().GetRemainingTime() - if remaining: - # Use a slightly smaller timeout than remaining time to ensure that we - # have time to collect output from the command. - timeout = 0.95 * remaining - else: - timeout = None - env = cls._ADB_ENV.copy() - if additional_env: - env.update(additional_env) + check_error=True, cpu_affinity=None): + # pylint: disable=no-member try: status, output = cmd_helper.GetCmdStatusAndOutputWithTimeout( cls._BuildAdbCmd(args, device_serial, cpu_affinity=cpu_affinity), - timeout, env=env) + timeout_retry.CurrentTimeoutThreadGroup().GetRemainingTime(), + env=cls._ADB_ENV) except OSError as e: if e.errno in (errno.ENOENT, errno.ENOEXEC): raise device_errors.NoAdbError(msg=str(e)) @@ -310,8 +291,7 @@ timeout: Timeout in seconds. retries: Number of retries. check_error: Check that the command doesn't return an error message. This - does check the error status of adb but DOES NOT check the exit status - of shell commands. + does NOT check the exit status of shell commands. Returns: The output of the command. @@ -320,17 +300,13 @@ device_serial=self._device_serial, check_error=check_error) - def _IterRunDeviceAdbCmd(self, args, iter_timeout, timeout, - check_error=True): + def _IterRunDeviceAdbCmd(self, args, iter_timeout, timeout): """Runs an adb command and returns an iterator over its output lines. Args: args: A list of arguments to adb. iter_timeout: Timeout for each iteration in seconds. timeout: Timeout for the entire command in seconds. - check_error: Check that the command succeeded. This does check the - error status of the adb command but DOES NOT check the exit status - of shell commands. Yields: The output of the command line by line. @@ -339,8 +315,7 @@ self._BuildAdbCmd(args, self._device_serial), iter_timeout=iter_timeout, timeout=timeout, - env=self._ADB_ENV, - check_status=check_error) + env=self._ADB_ENV) def __eq__(self, other): """Consider instances equal if they refer to the same device. @@ -378,21 +353,10 @@ cls._RunAdbCmd(['kill-server'], timeout=timeout, retries=retries) @classmethod - def StartServer(cls, keys=None, timeout=DEFAULT_TIMEOUT, - retries=DEFAULT_RETRIES): - """Starts the ADB server. - - Args: - keys: (optional) List of local ADB keys to use to auth with devices. - timeout: (optional) Timeout per try in seconds. - retries: (optional) Number of retries to attempt. - """ - additional_env = {} - if keys: - additional_env['ADB_VENDOR_KEYS'] = ':'.join(keys) + def StartServer(cls, timeout=DEFAULT_TIMEOUT, retries=DEFAULT_RETRIES): # CPU affinity is used to reduce adb instability http://crbug.com/268450 cls._RunAdbCmd(['start-server'], timeout=timeout, retries=retries, - cpu_affinity=0, additional_env=additional_env) + cpu_affinity=0) @classmethod def GetDevices(cls, timeout=DEFAULT_TIMEOUT, retries=DEFAULT_RETRIES): @@ -458,8 +422,8 @@ """ VerifyLocalFileExists(local) - if (du_version.LooseVersion(self.Version()) < - du_version.LooseVersion('1.0.36')): + if (distutils.version.LooseVersion(self.Version()) < + distutils.version.LooseVersion('1.0.36')): # Different versions of adb handle pushing a directory to an existing # directory differently. @@ -516,19 +480,6 @@ 'File pulled from the device did not arrive on the host: %s' % local, device_serial=str(self)) - def StartShell(self, cmd): - """Starts a subprocess on the device and returns a handle to the process. - - Args: - args: A sequence of program arguments. The executable to run is the first - item in the sequence. - - Returns: - An instance of subprocess.Popen associated with the live process. - """ - return cmd_helper.StartCmd( - self._BuildAdbCmd(['shell'] + cmd, self._device_serial)) - def Shell(self, command, expect_status=0, timeout=DEFAULT_TIMEOUT, retries=DEFAULT_RETRIES): """Runs a shell command on the device. @@ -624,7 +575,7 @@ def Logcat(self, clear=False, dump=False, filter_specs=None, logcat_format=None, ring_buffer=None, iter_timeout=None, - check_error=True, timeout=None, retries=DEFAULT_RETRIES): + timeout=None, retries=DEFAULT_RETRIES): """Get an iterable over the logcat output. Args: @@ -640,7 +591,6 @@ iter_timeout: If set and neither clear nor dump is set, the number of seconds to wait between iterations. If no line is found before the given number of seconds elapses, the iterable will yield None. - check_error: Whether to check the exit status of the logcat command. timeout: (optional) If set, timeout per try in seconds. If clear or dump is set, defaults to DEFAULT_TIMEOUT. retries: (optional) If clear or dump is set, the number of retries to @@ -666,13 +616,10 @@ cmd.extend(filter_specs) if use_iter: - return self._IterRunDeviceAdbCmd( - cmd, iter_timeout, timeout, check_error=check_error) + return self._IterRunDeviceAdbCmd(cmd, iter_timeout, timeout) else: timeout = timeout if timeout is not None else DEFAULT_TIMEOUT - output = self._RunDeviceAdbCmd( - cmd, timeout, retries, check_error=check_error) - return output.splitlines() + return self._RunDeviceAdbCmd(cmd, timeout, retries).splitlines() def Forward(self, local, remote, allow_rebind=False, timeout=DEFAULT_TIMEOUT, retries=DEFAULT_RETRIES): @@ -724,8 +671,8 @@ Returns: The output of adb forward --list as a string. """ - if (du_version.LooseVersion(self.Version()) >= - du_version.LooseVersion('1.0.36')): + if (distutils.version.LooseVersion(self.Version()) >= + distutils.version.LooseVersion('1.0.36')): # Starting in 1.0.36, this can occasionally fail with a protocol fault. # As this interrupts all connections with all devices, we instead just # return an empty list. This may give clients an inaccurate result, but @@ -968,28 +915,18 @@ return self._RunDeviceAdbCmd(['emu'] + cmd, timeout, retries) def DisableVerity(self, timeout=DEFAULT_TIMEOUT, retries=DEFAULT_RETRIES): - """Disable Marshmallow's Verity security feature. - - Returns: - The output of the disable-verity command as a string. - """ + """Disable Marshmallow's Verity security feature""" output = self._RunDeviceAdbCmd(['disable-verity'], timeout, retries) if output and not _VERITY_DISABLE_RE.search(output): raise device_errors.AdbCommandFailedError( ['disable-verity'], output, device_serial=self._device_serial) - return output def EnableVerity(self, timeout=DEFAULT_TIMEOUT, retries=DEFAULT_RETRIES): - """Enable Marshmallow's Verity security feature. - - Returns: - The output of the enable-verity command as a string. - """ + """Enable Marshmallow's Verity security feature""" output = self._RunDeviceAdbCmd(['enable-verity'], timeout, retries) if output and not _VERITY_ENABLE_RE.search(output): raise device_errors.AdbCommandFailedError( ['enable-verity'], output, device_serial=self._device_serial) - return output @property def is_emulator(self):
diff --git a/systrace/catapult/devil/devil/android/sdk/fastboot.py b/systrace/catapult/devil/devil/android/sdk/fastboot.py index 47f4167..ae99d39 100644 --- a/systrace/catapult/devil/devil/android/sdk/fastboot.py +++ b/systrace/catapult/devil/devil/android/sdk/fastboot.py
@@ -54,7 +54,7 @@ Raises: TypeError: If cmd is not of type list. """ - if isinstance(cmd, list): + if type(cmd) == list: cmd = [cls._fastboot_path.read()] + cmd else: raise TypeError( @@ -76,7 +76,7 @@ Raises: TypeError: If cmd is not of type list. """ - if isinstance(cmd, list): + if type(cmd) == list: cmd = ['-s', self._device_serial] + cmd return self._RunFastbootCommand(cmd)
diff --git a/systrace/catapult/devil/devil/android/sdk/shared_prefs.py b/systrace/catapult/devil/devil/android/sdk/shared_prefs.py index c8c82b4..2fa2e6a 100644 --- a/systrace/catapult/devil/devil/android/sdk/shared_prefs.py +++ b/systrace/catapult/devil/devil/android/sdk/shared_prefs.py
@@ -10,10 +10,10 @@ import logging import posixpath -from xml.etree import ElementTree from devil.android import device_errors from devil.android.sdk import version_codes +from xml.etree import ElementTree logger = logging.getLogger(__name__) @@ -167,7 +167,7 @@ class SharedPrefs(object): - def __init__(self, device, package, filename, use_encrypted_path=False): + def __init__(self, device, package, filename): """Helper object to read and update "Shared Prefs" of Android apps. Such files typically look like, e.g.: @@ -196,29 +196,12 @@ package: A string with the package name of the app that owns the shared preferences file. filename: A string with the name of the preferences file to read/write. - use_encrypted_path: Whether to read and write to the shared prefs location - in the device-encrypted path (/data/user_de) instead of the older, - unencrypted path (/data/data). Only supported on N+, but falls back to - the unencrypted path if the encrypted path is not supported on the given - device. """ self._device = device self._xml = None self._package = package self._filename = filename - self._unencrypted_path = '/data/data/%s/shared_prefs/%s' % (package, - filename) - self._encrypted_path = '/data/user_de/0/%s/shared_prefs/%s' % (package, - filename) - self._path = self._unencrypted_path - self._encrypted = use_encrypted_path - if use_encrypted_path: - if self._device.build_version_sdk < version_codes.NOUGAT: - logging.info('SharedPrefs set to use encrypted path, but given device ' - 'is not running N+. Falling back to unencrypted path') - self._encrypted = False - else: - self._path = self._encrypted_path + self._path = '/data/data/%s/shared_prefs/%s' % (package, filename) self._changed = False def __repr__(self): @@ -278,17 +261,12 @@ self._xml = None self._changed = True - def Commit(self, force_commit=False): + def Commit(self): """Save the current set of preferences to the device. - Only actually saves if some preferences have been modified or force_commit - is set to True. - - Args: - force_commit: Commit even if no changes have been made to the SharedPrefs - instance. + Only actually saves if some preferences have been modified. """ - if not (self.changed or force_commit): + if not self.changed: return self._device.RunShellCommand( ['mkdir', '-p', posixpath.dirname(self.path)], @@ -299,24 +277,14 @@ # to the shared_prefs directory, which mimics the behavior of a file # created by the app itself if self._device.build_version_sdk >= version_codes.MARSHMALLOW: - security_context = self._device.GetSecurityContextForPackage(self.package, - encrypted=self._encrypted) - if security_context is None: + security_context = self._GetSecurityContext(self.package) + if security_context == None: raise device_errors.CommandFailedError( 'Failed to get security context for %s' % self.package) - paths = [posixpath.dirname(self.path), self.path] - self._device.ChangeSecurityContext(security_context, paths) - - # Ensure that there isn't both an encrypted and unencrypted version of the - # file on the device at the same time. - if self._device.build_version_sdk >= version_codes.NOUGAT: - remove_path = (self._unencrypted_path if self._encrypted - else self._encrypted_path) - if self._device.PathExists(remove_path, as_root=True): - logging.warning('Found an equivalent shared prefs file at %s, removing', - remove_path) - self._device.RemovePath(remove_path, as_root=True) - + self._device.RunShellCommand( + ['chcon', '-R', security_context, + '/data/data/%s/shared_prefs' % self.package], + as_root=True, check_return=True) self._device.KillAll(self.package, exact=True, as_root=True, quiet=True) self._changed = False @@ -438,3 +406,15 @@ pref.set(value) self._changed = True logger.info('Setting property: %s', pref) + + def _GetSecurityContext(self, package): + for line in self._device.RunShellCommand(['ls', '-Z', '/data/data/'], + as_root=True, check_return=True): + split_line = line.split() + # ls -Z output differs between Android versions, but the package is + # always last and the context always starts with "u:object" + if split_line[-1] == package: + for column in split_line: + if column.startswith('u:object'): + return column + return None
diff --git a/systrace/catapult/devil/devil/android/sdk/shared_prefs_test.py b/systrace/catapult/devil/devil/android/sdk/shared_prefs_test.py index 08bbb46..4c31c56 100755 --- a/systrace/catapult/devil/devil/android/sdk/shared_prefs_test.py +++ b/systrace/catapult/devil/devil/android/sdk/shared_prefs_test.py
@@ -19,14 +19,6 @@ import mock # pylint: disable=import-error -INITIAL_XML = ("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n" - '<map>\n' - ' <int name="databaseVersion" value="107" />\n' - ' <boolean name="featureEnabled" value="false" />\n' - ' <string name="someHashValue">249b3e5af13d4db2</string>\n' - '</map>') - - def MockDeviceWithFiles(files=None): if files is None: files = {} @@ -51,7 +43,13 @@ def setUp(self): self.device = MockDeviceWithFiles({ - '/data/data/com.some.package/shared_prefs/prefs.xml': INITIAL_XML}) + '/data/data/com.some.package/shared_prefs/prefs.xml': + "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n" + '<map>\n' + ' <int name="databaseVersion" value="107" />\n' + ' <boolean name="featureEnabled" value="false" />\n' + ' <string name="someHashValue">249b3e5af13d4db2</string>\n' + '</map>'}) self.expected_data = {'databaseVersion': 107, 'featureEnabled': False, 'someHashValue': '249b3e5af13d4db2'} @@ -129,22 +127,6 @@ 'bigNumner': 6000000000, 'apps': ['gmail', 'chrome', 'music']}) # data survived roundtrip - def testForceCommit(self): - prefs = shared_prefs.SharedPrefs( - self.device, 'com.some.package', 'prefs.xml') - prefs.Load() - new_xml = 'Not valid XML' - self.device.WriteFile('/data/data/com.some.package/shared_prefs/prefs.xml', - new_xml) - prefs.Commit() - # Since we didn't change anything, Commit() should be a no-op. - self.assertEquals(self.device.ReadFile( - '/data/data/com.some.package/shared_prefs/prefs.xml'), new_xml) - prefs.Commit(force_commit=True) - # Forcing the commit should restore the originally read XML. - self.assertEquals(self.device.ReadFile( - '/data/data/com.some.package/shared_prefs/prefs.xml'), INITIAL_XML) - def testAsContextManager_onlyReads(self): with shared_prefs.SharedPrefs( self.device, 'com.some.package', 'prefs.xml') as prefs: @@ -184,19 +166,6 @@ # contents were not modified self.assertEquals(prefs.AsDict(), self.expected_data) - def testEncryptedPath(self): - type(self.device).build_version_sdk = mock.PropertyMock( - return_value=version_codes.MARSHMALLOW) - with shared_prefs.SharedPrefs(self.device, 'com.some.package', - 'prefs.xml', use_encrypted_path=True) as prefs: - self.assertTrue(prefs.path.startswith('/data/data')) - - type(self.device).build_version_sdk = mock.PropertyMock( - return_value=version_codes.NOUGAT) - with shared_prefs.SharedPrefs(self.device, 'com.some.package', - 'prefs.xml', use_encrypted_path=True) as prefs: - self.assertTrue(prefs.path.startswith('/data/user_de/0')) - if __name__ == '__main__': logging.getLogger().setLevel(logging.DEBUG) unittest.main(verbosity=2)
diff --git a/systrace/catapult/devil/devil/android/sdk/version_codes.py b/systrace/catapult/devil/devil/android/sdk/version_codes.py index 29c7285..ec14359 100644 --- a/systrace/catapult/devil/devil/android/sdk/version_codes.py +++ b/systrace/catapult/devil/devil/android/sdk/version_codes.py
@@ -17,6 +17,5 @@ MARSHMALLOW = 23 NOUGAT = 24 NOUGAT_MR1 = 25 -OREO = 26 -OREO_MR1 = 27 -PIE = 28 +O = 26 +O_MR1 = 27
diff --git a/systrace/catapult/devil/devil/android/tools/device_monitor.py b/systrace/catapult/devil/devil/android/tools/device_monitor.py index 565f865..10e0333 100755 --- a/systrace/catapult/devil/devil/android/tools/device_monitor.py +++ b/systrace/catapult/devil/devil/android/tools/device_monitor.py
@@ -112,9 +112,9 @@ except ValueError: continue key = line.split(':')[0].strip() - if key == 'MemTotal': + if 'MemTotal' == key: status['mem']['total'] = value - elif key == 'MemFree': + elif 'MemFree' == key: status['mem']['free'] = value # Process @@ -162,8 +162,7 @@ try: status = get_device_status_unsafe(device) except device_errors.DeviceUnreachableError: - status = collections.defaultdict(dict) - status['state'] = 'offline' + status = {'state': 'offline'} return status
diff --git a/systrace/catapult/devil/devil/android/tools/device_recovery.py b/systrace/catapult/devil/devil/android/tools/device_recovery.py index 8050e6f..0925aae 100755 --- a/systrace/catapult/devil/devil/android/tools/device_recovery.py +++ b/systrace/catapult/devil/devil/android/tools/device_recovery.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env vpython +#!/usr/bin/env python # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -6,14 +6,12 @@ """A script to recover devices in a known bad state.""" import argparse -import glob import logging import os +import psutil import signal import sys -import psutil - if __name__ == '__main__': sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), @@ -31,20 +29,16 @@ logger = logging.getLogger(__name__) -from py_utils import modules_util - - -# Script depends on features from psutil version 2.0 or higher. -modules_util.RequireVersion(psutil, '2.0') - def KillAllAdb(): def get_all_adb(): for p in psutil.process_iter(): try: - # Retrieve all required process infos at once. + # Note: p.as_dict is compatible with both older (v1 and under) as well + # as newer (v2 and over) versions of psutil. + # See: http://grodola.blogspot.com/2014/01/psutil-20-porting.html pinfo = p.as_dict(attrs=['pid', 'name', 'cmdline']) - if pinfo['name'] == 'adb': + if 'adb' == pinfo['name']: pinfo['cmdline'] = ' '.join(pinfo['cmdline']) yield p, pinfo except (psutil.NoSuchProcess, psutil.AccessDenied): @@ -65,58 +59,12 @@ pass -def TryAuth(device): - """Uses anything in ~/.android/ that looks like a key to auth with the device. - - Args: - device: The DeviceUtils device to attempt to auth. - - Returns: - True if device successfully authed. - """ - possible_keys = glob.glob(os.path.join(adb_wrapper.ADB_HOST_KEYS_DIR, '*key')) - if len(possible_keys) <= 1: - logger.warning( - 'Only %d ADB keys available. Not forcing auth.', len(possible_keys)) - return False - - KillAllAdb() - adb_wrapper.AdbWrapper.StartServer(keys=possible_keys) - new_state = device.adb.GetState() - if new_state != 'device': - logger.error( - 'Auth failed. Device %s still stuck in %s.', str(device), new_state) - return False - - # It worked! Now register the host's default ADB key on the device so we don't - # have to do all that again. - pub_key = os.path.join(adb_wrapper.ADB_HOST_KEYS_DIR, 'adbkey.pub') - if not os.path.exists(pub_key): # This really shouldn't happen. - logger.error('Default ADB key not available at %s.', pub_key) - return False - - with open(pub_key) as f: - pub_key_contents = f.read() - try: - device.WriteFile(adb_wrapper.ADB_KEYS_FILE, pub_key_contents, as_root=True) - except (device_errors.CommandTimeoutError, - device_errors.CommandFailedError, - device_errors.DeviceUnreachableError): - logger.exception('Unable to write default ADB key to %s.', str(device)) - return False - return True - - def RecoverDevice(device, blacklist, should_reboot=lambda device: True): if device_status.IsBlacklisted(device.adb.GetDeviceSerial(), blacklist): logger.debug('%s is blacklisted, skipping recovery.', str(device)) return - if device.adb.GetState() == 'unauthorized' and TryAuth(device): - logger.info('Successfully authed device %s!', str(device)) - return - if should_reboot(device): try: device.WaitUntilFullyBooted(retries=0) @@ -187,7 +135,7 @@ should_restart_adb = should_restart_usb.union(set( status['serial'] for status in statuses if status['adb_status'] == 'unauthorized')) - should_reboot_device = should_restart_usb.union(set( + should_reboot_device = should_restart_adb.union(set( status['serial'] for status in statuses if status['blacklisted']))
diff --git a/systrace/catapult/devil/devil/android/tools/provision_devices.py b/systrace/catapult/devil/devil/android/tools/provision_devices.py index 47b1dc3..68aca3b 100755 --- a/systrace/catapult/devil/devil/android/tools/provision_devices.py +++ b/systrace/catapult/devil/devil/android/tools/provision_devices.py
@@ -39,7 +39,6 @@ from devil.android.sdk import adb_wrapper from devil.android.sdk import intent from devil.android.sdk import keyevent -from devil.android.sdk import shared_prefs from devil.android.sdk import version_codes from devil.android.tools import script_common from devil.constants import exit_codes @@ -52,9 +51,6 @@ _SYSTEM_WEBVIEW_NAMES = ['webview', 'WebViewGoogle'] _CHROME_PACKAGE_REGEX = re.compile('.*chrom.*') _TOMBSTONE_REGEX = re.compile('tombstone.*') -_STANDALONE_VR_DEVICES = [ - 'vega', # Lenovo Mirage Solo -] class _DEFAULT_TIMEOUTS(object): @@ -138,7 +134,6 @@ steps.append(ProvisionStep(SetDate)) steps.append(ProvisionStep(CheckExternalStorage)) - steps.append(ProvisionStep(StandaloneVrDeviceSetup)) parallel_devices.pMap(ProvisionDevice, steps, blacklist, reboot_timeout) @@ -514,8 +509,6 @@ logger.info(' %s', prop) -# TODO(jbudorick): Relocate this either to device_utils or a separate -# and more intentionally reusable layer on top of device_utils. def CheckExternalStorage(device): """Checks that storage is writable and if not makes it writable. @@ -536,30 +529,6 @@ device.WriteFile(f.name, 'test') -def StandaloneVrDeviceSetup(device): - """Performs any additional setup necessary for standalone Android VR devices. - - Arguments: - device: The device to check. - """ - if device.product_name not in _STANDALONE_VR_DEVICES: - return - - # Modify VrCore's settings so that any first time setup, etc. is skipped. - shared_pref = shared_prefs.SharedPrefs(device, 'com.google.vr.vrcore', - 'VrCoreSettings.xml', use_encrypted_path=True) - shared_pref.Load() - # Skip first time setup. - shared_pref.SetBoolean('DaydreamSetupComplete', True) - # Disable the automatic prompt that shows anytime the device detects that a - # controller isn't connected. - shared_pref.SetBoolean('gConfigFlags:controller_recovery_enabled', False) - # Use an automated controller instead of a real one so we get past the - # controller pairing screen that's shown on startup. - shared_pref.SetBoolean('UseAutomatedController', True) - shared_pref.Commit() - - def main(raw_args): # Recommended options on perf bots: # --disable-network
diff --git a/systrace/catapult/devil/devil/android/tools/script_common.py b/systrace/catapult/devil/devil/android/tools/script_common.py index 897659b..150e63f 100644 --- a/systrace/catapult/devil/devil/android/tools/script_common.py +++ b/systrace/catapult/devil/devil/android/tools/script_common.py
@@ -11,38 +11,13 @@ def AddEnvironmentArguments(parser): - """Adds environment-specific arguments to the provided parser. - - After adding these arguments, you must pass the user-specified values when - initializing devil. See the InitializeEnvironment() to determine how to do so. - - Args: - parser: an instance of argparse.ArgumentParser - """ + """Adds environment-specific arguments to the provided parser.""" parser.add_argument( '--adb-path', type=os.path.realpath, help='Path to the adb binary') def InitializeEnvironment(args): - """Initializes devil based on the args added by AddEnvironmentArguments(). - - This initializes devil, and configures it to use the adb binary specified by - the '--adb-path' flag (if provided by the user, otherwise this defaults to - devil's copy of adb). Although this is one possible way to initialize devil, - you should check if your project has prefered ways to initialize devil (ex. - the chromium project uses devil_chromium.Initialize() to have different - defaults for dependencies). - - This method requires having previously called AddEnvironmentArguments() on the - relevant argparse.ArgumentParser. - - Note: you should only initialize devil once, and subsequent calls to any - method wrapping devil_env.config.Initialize() will have no effect. - - Args: - args: the parsed args returned by an argparse.ArgumentParser - """ devil_dynamic_config = devil_env.EmptyConfig() if args.adb_path: devil_dynamic_config['dependencies'].update( @@ -53,11 +28,7 @@ def AddDeviceArguments(parser): - """Adds device and blacklist arguments to the provided parser. - - Args: - parser: an instance of argparse.ArgumentParser - """ + """Adds device and blacklist arguments to the provided parser.""" parser.add_argument( '-d', '--device', dest='devices', action='append', help='Serial number of the Android device to use. (default: use all)')
diff --git a/systrace/catapult/devil/devil/android/tools/script_common_test.py b/systrace/catapult/devil/devil/android/tools/script_common_test.py index 30f9aaf..3ddb1c1 100755 --- a/systrace/catapult/devil/devil/android/tools/script_common_test.py +++ b/systrace/catapult/devil/devil/android/tools/script_common_test.py
@@ -18,7 +18,6 @@ import mock # pylint: disable=import-error with devil_env.SysPath(devil_env.DEPENDENCY_MANAGER_PATH): - # pylint: disable=wrong-import-order from dependency_manager import exceptions @@ -91,3 +90,4 @@ if __name__ == '__main__': sys.exit(unittest.main()) +
diff --git a/systrace/catapult/devil/devil/android/tools/system_app.py b/systrace/catapult/devil/devil/android/tools/system_app.py index 8629ae6..00ea312 100755 --- a/systrace/catapult/devil/devil/android/tools/system_app.py +++ b/systrace/catapult/devil/devil/android/tools/system_app.py
@@ -10,7 +10,6 @@ import logging import os import posixpath -import re import sys @@ -32,19 +31,6 @@ logger = logging.getLogger(__name__) -# Some system apps aren't actually installed in the /system/ directory, so -# special case them here with the correct install location. -SPECIAL_SYSTEM_APP_LOCATIONS = { - # This also gets installed in /data/app when not a system app, so this script - # will remove either version. This doesn't appear to cause any issues, but - # will cause a few unnecessary reboots if this is the only package getting - # removed and it's already not a system app. - 'com.google.ar.core': '/data/app/', -} - -# Gets app path and package name pm list packages -f output. -_PM_LIST_PACKAGE_PATH_RE = re.compile(r'^\s*package:(\S+)=(\S+)\s*$') - def RemoveSystemApps(device, package_names): """Removes the given system apps. @@ -60,8 +46,7 @@ @contextlib.contextmanager -def ReplaceSystemApp(device, package_name, replacement_apk, - install_timeout=None): +def ReplaceSystemApp(device, package_name, replacement_apk): """A context manager that replaces the given system app while in scope. Args: @@ -72,7 +57,7 @@ """ storage_dir = device_temp_file.NamedDeviceTemporaryDirectory(device.adb) relocate_app = _RelocateApp(device, package_name, storage_dir.name) - install_app = _TemporarilyInstallApp(device, replacement_apk, install_timeout) + install_app = _TemporarilyInstallApp(device, replacement_apk) with storage_dir, relocate_app, install_app: yield @@ -81,36 +66,8 @@ """Finds all system paths for the given packages.""" found_paths = [] for system_package in system_package_list: - paths = _GetApplicationPaths(device, system_package) - p = _GetSystemPath(system_package, paths) - if p: - found_paths.append(p) - return found_paths - - -# Find all application paths, even those flagged as uninstalled, as these -# would still block another package with the same name from installation -# if they differ in signing keys. -# TODO(aluo): Move this into device_utils.py -def _GetApplicationPaths(device, package): - paths = [] - lines = device.RunShellCommand(['pm', 'list', 'packages', '-f', '-u', - package], check_return=True) - for line in lines: - match = re.match(_PM_LIST_PACKAGE_PATH_RE, line) - if match: - path = match.group(1) - package_name = match.group(2) - if package_name == package: - paths.append(path) - return paths - - -def _GetSystemPath(package, paths): - for p in paths: - if p.startswith(SPECIAL_SYSTEM_APP_LOCATIONS.get(package, '/system/')): - return p - return None + found_paths.extend(device.GetApplicationPaths(system_package)) + return [p for p in found_paths if p.startswith('/system/')] _ENABLE_MODIFICATION_PROP = 'devil.modify_sys_apps' @@ -127,12 +84,6 @@ yield return - # All calls that could potentially need root should run with as_root=True, but - # it looks like some parts of Telemetry work as-is by implicitly assuming that - # root is already granted if it's necessary. The reboot can mess with this, so - # as a workaround, check whether we're starting with root already, and if so, - # restore the device to that state at the end. - should_restore_root = device.HasRoot() device.EnableRoot() if not device.HasRoot(): raise device_errors.CommandFailedError( @@ -156,8 +107,6 @@ device.SetProp(_ENABLE_MODIFICATION_PROP, '0') device.Reboot() device.WaitUntilFullyBooted() - if should_restore_root: - device.EnableRoot() @contextlib.contextmanager @@ -187,17 +136,13 @@ @contextlib.contextmanager -def _TemporarilyInstallApp(device, apk, install_timeout=None): +def _TemporarilyInstallApp(device, apk): """A context manager that installs an app while in scope.""" - if install_timeout is None: - device.Install(apk, reinstall=True) - else: - device.Install(apk, reinstall=True, timeout=install_timeout) - + device.adb.Install(apk, reinstall=True) try: yield finally: - device.Uninstall(apk_helper.GetPackageName(apk)) + device.adb.Uninstall(apk_helper.GetPackageName(apk)) def _MoveApp(device, relocation_map):
diff --git a/systrace/catapult/devil/devil/android/tools/system_app_devicetest.py b/systrace/catapult/devil/devil/android/tools/system_app_devicetest.py index 293bad1..0e8afdc 100755 --- a/systrace/catapult/devil/devil/android/tools/system_app_devicetest.py +++ b/systrace/catapult/devil/devil/android/tools/system_app_devicetest.py
@@ -39,7 +39,7 @@ self._cached_apks = {} for o in self._original_paths: h = os.path.join(self._apk_cache_dir, posixpath.basename(o)) - self._device.PullFile(o, h, timeout=60) + self._device.PullFile(o, h) self._cached_apks[h] = o def tearDown(self):
diff --git a/systrace/catapult/devil/devil/android/tools/system_app_test.py b/systrace/catapult/devil/devil/android/tools/system_app_test.py index 44df7ea..f72aa16 100644 --- a/systrace/catapult/devil/devil/android/tools/system_app_test.py +++ b/systrace/catapult/devil/devil/android/tools/system_app_test.py
@@ -21,16 +21,6 @@ import mock -_PACKAGE_NAME = 'com.android' -_PACKAGE_PATH = '/path/to/com.android.apk' -_PM_LIST_PACKAGES_COMMAND = ['pm', 'list', 'packages', '-f', '-u', - _PACKAGE_NAME] -_PM_LIST_PACKAGES_OUTPUT_WITH_PATH = ['package:/path/to/other=' + _PACKAGE_NAME - + '.other', 'package:' + _PACKAGE_PATH + - '=' + _PACKAGE_NAME] -_PM_LIST_PACKAGES_OUTPUT_WITHOUT_PATH = ['package:/path/to/other=' + - _PACKAGE_NAME + '.other'] - class SystemAppTest(unittest.TestCase): def testDoubleEnableModification(self): @@ -57,7 +47,7 @@ mock_device.GetProp.side_effect = dict_getprop with system_app.EnableSystemAppModification(mock_device): - mock_device.EnableRoot.assert_called_once_with() + mock_device.EnableRoot.assert_called_once() mock_device.GetProp.assert_called_once_with( system_app._ENABLE_MODIFICATION_PROP) mock_device.SetProp.assert_called_once_with( @@ -65,71 +55,15 @@ mock_device.reset_mock() with system_app.EnableSystemAppModification(mock_device): - self.assertFalse(mock_device.EnableRoot.mock_calls) # assert not called + mock_device.EnableRoot.assert_not_called() mock_device.GetProp.assert_called_once_with( system_app._ENABLE_MODIFICATION_PROP) - self.assertFalse(mock_device.SetProp.mock_calls) # assert not called + mock_device.SetProp.assert_not_called() mock_device.reset_mock() mock_device.SetProp.assert_called_once_with( system_app._ENABLE_MODIFICATION_PROP, '0') - def test_GetApplicationPaths_found(self): - """Path found in output along with another package having similar name.""" - # pylint: disable=protected-access - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.RunShellCommand.configure_mock( - return_value=_PM_LIST_PACKAGES_OUTPUT_WITH_PATH - ) - - paths = system_app._GetApplicationPaths(mock_device, _PACKAGE_NAME) - - self.assertEquals([_PACKAGE_PATH], paths) - mock_device.RunShellCommand.assert_called_once_with( - _PM_LIST_PACKAGES_COMMAND, check_return=True) - - def test_GetApplicationPaths_notFound(self): - """Path not found in output, only another package with similar name.""" - # pylint: disable=protected-access - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.RunShellCommand.configure_mock( - return_value=_PM_LIST_PACKAGES_OUTPUT_WITHOUT_PATH - ) - - paths = system_app._GetApplicationPaths(mock_device, _PACKAGE_NAME) - - self.assertEquals([], paths) - mock_device.RunShellCommand.assert_called_once_with( - _PM_LIST_PACKAGES_COMMAND, check_return=True) - - def test_GetApplicationPaths_noPaths(self): - """Nothing containing text of package name found in output.""" - # pylint: disable=protected-access - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.RunShellCommand.configure_mock( - return_value=[] - ) - - paths = system_app._GetApplicationPaths(mock_device, _PACKAGE_NAME) - - self.assertEquals([], paths) - mock_device.RunShellCommand.assert_called_once_with( - _PM_LIST_PACKAGES_COMMAND, check_return=True) - - def test_GetApplicationPaths_emptyName(self): - """Called with empty name, should not return any packages.""" - # pylint: disable=protected-access - mock_device = mock.Mock(spec=device_utils.DeviceUtils) - mock_device.RunShellCommand.configure_mock( - return_value=_PM_LIST_PACKAGES_OUTPUT_WITH_PATH - ) - - paths = system_app._GetApplicationPaths(mock_device, '') - - self.assertEquals([], paths) - mock_device.RunShellCommand.assert_called_once_with( - _PM_LIST_PACKAGES_COMMAND[:-1] + [''], check_return=True) - if __name__ == '__main__': unittest.main()
diff --git a/systrace/catapult/devil/devil/android/tools/unlock_bootloader.py b/systrace/catapult/devil/devil/android/tools/unlock_bootloader.py index b38f669..46fec9d 100644 --- a/systrace/catapult/devil/devil/android/tools/unlock_bootloader.py +++ b/systrace/catapult/devil/devil/android/tools/unlock_bootloader.py
@@ -106,10 +106,8 @@ logging.info('Device %s already unlocked.', d) elif 'unlock is not allowed' in out: logging.error("Device %s is oem locked. Can't unlock bootloader.", d) - return 1 else: logging.error('Device %s in unknown state: "%s"', d, out) - return 1 break if leftover_pids:
diff --git a/systrace/catapult/devil/devil/android/tools/webview_app.py b/systrace/catapult/devil/devil/android/tools/webview_app.py deleted file mode 100755 index 36b7039..0000000 --- a/systrace/catapult/devil/devil/android/tools/webview_app.py +++ /dev/null
@@ -1,205 +0,0 @@ -#!/usr/bin/env python -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""A script to use a package as the WebView provider while running a command.""" - -import argparse -import contextlib -import logging -import os -import re -import sys - - -if __name__ == '__main__': - sys.path.append( - os.path.abspath(os.path.join(os.path.dirname(__file__), - '..', '..', '..'))) - sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), - '..', '..', '..', '..', 'common', 'py_utils'))) - - -from devil.android import apk_helper -from devil.android import device_errors -from devil.android.sdk import version_codes -from devil.android.tools import script_common -from devil.android.tools import system_app -from devil.utils import cmd_helper -from devil.utils import parallelizer -from devil.utils import run_tests_helper -from py_utils import tempfile_ext - -logger = logging.getLogger(__name__) - -_SYSTEM_PATH_RE = re.compile(r'^\s*\/system\/') -_WEBVIEW_INSTALL_TIMEOUT = 300 - -@contextlib.contextmanager -def UseWebViewProvider(device, apk, expected_package=''): - """A context manager that uses the apk as the webview provider while in scope. - - Args: - device: (device_utils.DeviceUtils) The device for which the webview apk - should be used as the provider. - apk: (str) The path to the webview APK to use. - expected_package: (str) If non-empty, verify apk's package name matches - this value. - """ - package_name = apk_helper.GetPackageName(apk) - - if expected_package: - if package_name != expected_package: - raise device_errors.CommandFailedError( - 'WebView Provider package %s does not match expected %s' % - (package_name, expected_package), str(device)) - - if (device.build_version_sdk in - [version_codes.NOUGAT, version_codes.NOUGAT_MR1]): - logger.warning('Due to webviewupdate bug in Nougat, WebView Fallback Logic ' - 'will be disabled and WebView provider may be changed after ' - 'exit of UseWebViewProvider context manager scope.') - - webview_update = device.GetWebViewUpdateServiceDump() - original_fallback_logic = webview_update.get('FallbackLogicEnabled', None) - original_provider = webview_update.get('CurrentWebViewPackage', None) - - # This is only necessary if the provider is a fallback provider, but we can't - # generally determine this, so we set this just in case. - device.SetWebViewFallbackLogic(False) - - try: - # If user installed versions of the package is present, they must be - # uninstalled first, so that the system version of the package, - # if any, can be found by the ReplaceSystemApp context manager - with _UninstallNonSystemApp(device, package_name): - all_paths = device.GetApplicationPaths(package_name) - system_paths = _FilterPaths(all_paths, True) - non_system_paths = _FilterPaths(all_paths, False) - if non_system_paths: - raise device_errors.CommandFailedError( - 'Non-System application paths found after uninstallation: ', - str(non_system_paths)) - elif system_paths: - # app is system app, use ReplaceSystemApp to install - with system_app.ReplaceSystemApp( - device, - package_name, - apk, - install_timeout=_WEBVIEW_INSTALL_TIMEOUT): - _SetWebViewProvider(device, package_name) - yield - else: - # app is not present on device, can directly install - with _InstallApp(device, apk): - _SetWebViewProvider(device, package_name) - yield - finally: - # restore the original provider only if it was known and not the current - # provider - if original_provider is not None: - webview_update = device.GetWebViewUpdateServiceDump() - new_provider = webview_update.get('CurrentWebViewPackage', None) - if new_provider != original_provider: - device.SetWebViewImplementation(original_provider) - - # enable the fallback logic only if it was known to be enabled - if original_fallback_logic is True: - device.SetWebViewFallbackLogic(True) - - -def _SetWebViewProvider(device, package_name): - """ Set the WebView provider to the package_name if supported. """ - if device.build_version_sdk >= version_codes.NOUGAT: - device.SetWebViewImplementation(package_name) - - -def _FilterPaths(path_list, is_system): - """ Return paths in the path_list that are/aren't system paths. """ - return [ - p for p in path_list if is_system == bool(re.match(_SYSTEM_PATH_RE, p)) - ] - - -def _RebasePath(new_root, old_root): - """ Graft old_root onto new_root and return the result. """ - return os.path.join(new_root, os.path.relpath(old_root, '/')) - - -@contextlib.contextmanager -def _UninstallNonSystemApp(device, package_name): - """ Make package un-installed while in scope. """ - all_paths = device.GetApplicationPaths(package_name) - user_paths = _FilterPaths(all_paths, False) - host_paths = [] - if user_paths: - with tempfile_ext.NamedTemporaryDirectory() as temp_dir: - for user_path in user_paths: - host_path = _RebasePath(temp_dir, user_path) - # PullFile takes care of host_path creation if needed. - device.PullFile(user_path, host_path) - host_paths.append(host_path) - device.Uninstall(package_name) - try: - yield - finally: - for host_path in reversed(host_paths): - device.Install(host_path, reinstall=True, - timeout=_WEBVIEW_INSTALL_TIMEOUT) - else: - yield - - -@contextlib.contextmanager -def _InstallApp(device, apk): - """ Make apk installed while in scope. """ - package_name = apk_helper.GetPackageName(apk) - device.Install(apk, reinstall=True, timeout=_WEBVIEW_INSTALL_TIMEOUT) - try: - yield - finally: - device.Uninstall(package_name) - - -def main(raw_args): - parser = argparse.ArgumentParser() - - def add_common_arguments(p): - script_common.AddDeviceArguments(p) - script_common.AddEnvironmentArguments(p) - p.add_argument( - '-v', '--verbose', action='count', default=0, - help='Print more information.') - p.add_argument('command', nargs='*') - - @contextlib.contextmanager - def use_webview_provider(device, args): - with UseWebViewProvider(device, args.apk, args.expected_package): - yield - - parser.add_argument( - '--apk', required=True, - help='The apk to use as the provider.') - parser.add_argument( - '--expected-package', default='', - help="Verify apk's package name matches value, disabled by default.") - add_common_arguments(parser) - parser.set_defaults(func=use_webview_provider) - - args = parser.parse_args(raw_args) - - run_tests_helper.SetLogLevel(args.verbose) - script_common.InitializeEnvironment(args) - - devices = script_common.GetDevices(args.devices, args.blacklist_file) - parallel_devices = parallelizer.SyncParallelizer( - [args.func(d, args) for d in devices]) - with parallel_devices: - if args.command: - return cmd_helper.Call(args.command) - return 0 - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:]))
diff --git a/systrace/catapult/devil/devil/devil_dependencies.json b/systrace/catapult/devil/devil/devil_dependencies.json index 8b39788..6884a36 100644 --- a/systrace/catapult/devil/devil/devil_dependencies.json +++ b/systrace/catapult/devil/devil/devil_dependencies.json
@@ -6,7 +6,7 @@ "cloud_storage_bucket": "chromium-telemetry", "file_info": { "linux2_x86_64": { - "cloud_storage_hash": "87bd288daab30624e41faa62aa2c1d5bac3e60aa", + "cloud_storage_hash": "16ba3180141a2489d7ec99b39fd6e3434a9a373f", "download_path": "../bin/deps/linux2/x86_64/bin/aapt" } } @@ -26,8 +26,8 @@ "cloud_storage_bucket": "chromium-telemetry", "file_info": { "linux2_x86_64": { - "cloud_storage_hash": "9b986774ad27288a6777ebfa9a08fd8a52003008", - "download_path": "../bin/deps/linux2/x86_64/lib64/libc++.so" + "cloud_storage_hash": "91cdce1e3bd81b2ac1fd380013896d0e2cdb40a0", + "download_path": "../bin/deps/linux2/x86_64/lib/libc++.so" } } }, @@ -46,7 +46,7 @@ "cloud_storage_bucket": "chromium-telemetry", "file_info": { "linux2_x86_64": { - "cloud_storage_hash": "c3fdf75afe8eb4062d66703cb556ee1e2064b8ae", + "cloud_storage_hash": "acfb10f7a868baf9bcf446a2d9f8ed6b5d52c3c6", "download_path": "../bin/deps/linux2/x86_64/bin/dexdump" } } @@ -55,10 +55,6 @@ "cloud_storage_base_folder": "binary_dependencies", "cloud_storage_bucket": "chromium-telemetry", "file_info": { - "android_arm64-v8a": { - "cloud_storage_hash": "34e583c631a495afbba82ce8a1d4f9b5118a4411", - "download_path": "../bin/deps/android/arm64-v8a/apks/EmptySystemWebView.apk" - }, "android_armeabi-v7a": { "cloud_storage_hash": "220ff3ba1a6c3c81877997e32784ffd008f293a5", "download_path": "../bin/deps/android/armeabi-v7a/apks/EmptySystemWebView.apk" @@ -132,10 +128,10 @@ "cloud_storage_bucket": "chromium-telemetry", "file_info": { "linux2_x86_64": { - "cloud_storage_hash": "c116fd0d7ff089561971c078317b75b90f053207", + "cloud_storage_hash": "abb9753a8d3efeea4144e328933931729e01571c", "download_path": "../bin/deps/linux2/x86_64/bin/split-select" } } } } -} +} \ No newline at end of file
diff --git a/systrace/catapult/devil/devil/utils/__init__.py b/systrace/catapult/devil/devil/utils/__init__.py index e69de29..ff84988 100644 --- a/systrace/catapult/devil/devil/utils/__init__.py +++ b/systrace/catapult/devil/devil/utils/__init__.py
@@ -0,0 +1,23 @@ +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os +import sys + +def _JoinPath(*path_parts): + return os.path.abspath(os.path.join(*path_parts)) + + +def _AddDirToPythonPath(*path_parts): + path = _JoinPath(*path_parts) + if os.path.isdir(path) and path not in sys.path: + # Some call sites that use Telemetry assume that sys.path[0] is the + # directory containing the script, so we add these extra paths to right + # after sys.path[0]. + sys.path.insert(1, path) + +_CATAPULT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), + os.path.pardir, os.path.pardir, os.path.pardir) + +_AddDirToPythonPath(_CATAPULT_DIR, 'common', 'battor')
diff --git a/systrace/catapult/devil/devil/utils/battor_device_mapping.py b/systrace/catapult/devil/devil/utils/battor_device_mapping.py new file mode 100755 index 0000000..8cabb83 --- /dev/null +++ b/systrace/catapult/devil/devil/utils/battor_device_mapping.py
@@ -0,0 +1,309 @@ +#!/usr/bin/python +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + + +''' +This script provides tools to map BattOrs to phones. + +Phones are identified by the following string: + +"Phone serial number" - Serial number of the phone. This can be +obtained via 'adb devices' or 'usb-devices', and is not expected +to change for a given phone. + +BattOrs are identified by the following two strings: + +"BattOr serial number" - Serial number of the BattOr. This can be +obtained via 'usb-devices', and is not expected to change for +a given BattOr. + +"BattOr path" - The path of the form '/dev/ttyUSB*' that is used +to communicate with the BattOr (the battor_agent binary takes +this BattOr path as a parameter). The BattOr path is frequently +reassigned by the OS, most often when the device is disconnected +and then reconnected. Thus, the BattOr path cannot be expected +to be stable. + +In a typical application, the user will require the BattOr path +for the BattOr that is plugged into a given phone. For instance, +the user will be running tracing on a particular phone, and will +need to know which BattOr path to use to communicate with the BattOr +to get the corresponding power trace. + +Getting this mapping requires two steps: (1) determining the +mapping between phone serial numbers and BattOr serial numbers, and +(2) getting the BattOr path corresponding to a given BattOr serial +number. + +For step (1), we generate a JSON file giving this mapping. This +JSON file consists of a list of items of the following form: +[{'phone': <phone serial 1>, 'battor': <battor serial 1>}, +{'phone': <phone serial 2>, 'battor': <battor serial 2>}, ...] + +The default way to generate this JSON file is using the function +GenerateSerialMapFile, which generates a mapping based on assuming +that the system has two identical USB hubs connected to it, and +the phone plugged into physical port number 1 on one hub corresponds +to the BattOr plugged into physical port number 1 on the other hub, +and similarly with physical port numbers 2, 3, etc. This generates +the map file based on the structure at the time GenerateSerialMapFile called. +Note that after the map file is generated, port numbers are no longer used; +the user could move around the devices in the ports without affecting +which phone goes with which BattOr. (Thus, if the user wanted to update the +mapping to match the new port connections, the user would have to +re-generate this file.) + +The script update_mapping.py will do this updating from the command line. + +If the user wanted to specify a custom mapping, the user could instead +create the JSON file manually. (In this case, hubs would not be necessary +and the physical ports connected would be irrelevant.) + +Step (2) is conducted through the function GetBattOrPathFromPhoneSerial, +which takes a serial number mapping generated via step (1) and a phone +serial number, then gets the corresponding BattOr serial number from the +map and determines its BattOr path (e.g. /dev/ttyUSB0). Since BattOr paths +can change if devices are connected and disconnected (even if connected +or disconnected via the same port) this function should be called to +determine the BattOr path every time before connecting to the BattOr. + +Note that if there is only one BattOr connected to the system, then +GetBattOrPathFromPhoneSerial will always return that BattOr and will ignore +the mapping file. Thus, if the user never has more than one BattOr connected +to the system, the user will not need to generate mapping files. +''' + + +import json +import collections + +from battor import battor_error +from devil.utils import find_usb_devices +from devil.utils import usb_hubs + + +def GetBattOrList(device_tree_map): + return [x for x in find_usb_devices.GetTTYList() + if IsBattOr(x, device_tree_map)] + + +def IsBattOr(tty_string, device_tree_map): + (bus, device) = find_usb_devices.GetBusDeviceFromTTY(tty_string) + node = device_tree_map[bus].FindDeviceNumber(device) + return '0403:6001' in node.desc + + +def GetBattOrSerialNumbers(device_tree_map): + for x in find_usb_devices.GetTTYList(): + if IsBattOr(x, device_tree_map): + (bus, device) = find_usb_devices.GetBusDeviceFromTTY(x) + devnode = device_tree_map[bus].FindDeviceNumber(device) + yield devnode.serial + + +def ReadSerialMapFile(filename): + """Reads JSON file giving phone-to-battor serial number map. + + Parses a JSON file consisting of a list of items of the following form: + [{'phone': <phone serial 1>, 'battor': <battor serial 1>}, + {'phone': <phone serial 2>, 'battor': <battor serial 2>}, ...] + + indicating which phone serial numbers should be matched with + which BattOr serial numbers. Returns dictionary of the form: + + {<phone serial 1>: <BattOr serial 1>, + <phone serial 2>: <BattOr serial 2>} + + Args: + filename: Name of file to read. + """ + result = {} + with open(filename, 'r') as infile: + in_dict = json.load(infile) + for x in in_dict: + result[x['phone']] = x['battor'] + return result + +def WriteSerialMapFile(filename, serial_map): + """Writes a map of phone serial numbers to BattOr serial numbers to file. + + Writes a JSON file consisting of a list of items of the following form: + [{'phone': <phone serial 1>, 'battor': <battor serial 1>}, + {'phone': <phone serial 2>, 'battor': <battor serial 2>}, ...] + + indicating which phone serial numbers should be matched with + which BattOr serial numbers. Mapping is based on the physical port numbers + of the hubs that the BattOrs and phones are connected to. + + Args: + filename: Name of file to write. + serial_map: Serial map {phone: battor} + """ + result = [] + for (phone, battor) in serial_map.iteritems(): + result.append({'phone': phone, 'battor': battor}) + with open(filename, 'w') as outfile: + json.dump(result, outfile) + +def GenerateSerialMap(hub_types=None): + """Generates a map of phone serial numbers to BattOr serial numbers. + + Generates a dict of: + {<phone serial 1>: <battor serial 1>, + <phone serial 2>: <battor serial 2>} + indicating which phone serial numbers should be matched with + which BattOr serial numbers. Mapping is based on the physical port numbers + of the hubs that the BattOrs and phones are connected to. + + Args: + hub_types: List of hub types to check for. If not specified, checks + for all defined hub types. (see usb_hubs.py for details) + """ + if hub_types: + hub_types = [usb_hubs.GetHubType(x) for x in hub_types] + else: + hub_types = usb_hubs.ALL_HUBS + + devtree = find_usb_devices.GetBusNumberToDeviceTreeMap() + + # List of serial numbers in the system that represent BattOrs. + battor_serials = list(GetBattOrSerialNumbers(devtree)) + + # If there's only one BattOr in the system, then a serial number ma + # is not necessary. + if len(battor_serials) == 1: + return {} + + # List of dictionaries, one for each hub, that maps the physical + # port number to the serial number of that hub. For instance, in a 2 + # hub system, this could return [{1:'ab', 2:'cd'}, {1:'jkl', 2:'xyz'}] + # where 'ab' and 'cd' are the phone serial numbers and 'jkl' and 'xyz' + # are the BattOr serial numbers. + port_to_serial = find_usb_devices.GetAllPhysicalPortToSerialMaps( + hub_types, device_tree_map=devtree) + + class serials(object): + def __init__(self): + self.phone = None + self.battor = None + + # Map of {physical port number: [phone serial #, BattOr serial #]. This + # map is populated by executing the code below. For instance, in the above + # example, after the code below is executed, port_to_devices would equal + # {1: ['ab', 'jkl'], 2: ['cd', 'xyz']} + port_to_devices = collections.defaultdict(serials) + for hub in port_to_serial: + for (port, serial) in hub.iteritems(): + if serial in battor_serials: + if port_to_devices[port].battor is not None: + raise battor_error.BattOrError('Multiple BattOrs on same port number') + else: + port_to_devices[port].battor = serial + else: + if port_to_devices[port].phone is not None: + raise battor_error.BattOrError('Multiple phones on same port number') + else: + port_to_devices[port].phone = serial + + # Turn the port_to_devices map into a map of the form + # {phone serial number: BattOr serial number}. + result = {} + for pair in port_to_devices.values(): + if pair.phone is None: + continue + if pair.battor is None: + raise battor_error.BattOrError( + 'Phone detected with no corresponding BattOr') + result[pair.phone] = pair.battor + return result + +def GenerateSerialMapFile(filename, hub_types=None): + """Generates a serial map file and writes it.""" + WriteSerialMapFile(filename, GenerateSerialMap(hub_types)) + +def _PhoneToPathMap(serial, serial_map, devtree): + """Maps phone serial number to TTY path, assuming serial map is provided.""" + try: + battor_serial = serial_map[serial] + except KeyError: + raise battor_error.BattOrError('Serial number not found in serial map.') + for tree in devtree.values(): + for node in tree.AllNodes(): + if isinstance(node, find_usb_devices.USBDeviceNode): + if node.serial == battor_serial: + bus_device_to_tty = find_usb_devices.GetBusDeviceToTTYMap() + bus_device = (node.bus_num, node.device_num) + try: + return bus_device_to_tty[bus_device] + except KeyError: + raise battor_error.BattOrError( + 'Device with given serial number not a BattOr ' + '(does not have TTY path)') + + +def GetBattOrPathFromPhoneSerial(serial, serial_map=None, + serial_map_file=None): + """Gets the TTY path (e.g. '/dev/ttyUSB0') to communicate with the BattOr. + + (1) If serial_map is given, it is treated as a dictionary mapping + phone serial numbers to BattOr serial numbers. This function will get the + TTY path for the given BattOr serial number. + + (2) If serial_map_file is given, it is treated as the name of a + phone-to-BattOr mapping file (generated with GenerateSerialMapFile) + and this will be loaded and used as the dict to map port numbers to + BattOr serial numbers. + + You can only give one of serial_map and serial_map_file. + + Args: + serial: Serial number of phone connected on the same physical port that + the BattOr is connected to. + serial_map: Map of phone serial numbers to BattOr serial numbers, given + as a dictionary. + serial_map_file: Map of phone serial numbers to BattOr serial numbers, + given as a file. + hub_types: List of hub types to check for. Used only if serial_map_file + is None. + + Returns: + Device string used to communicate with device. + + Raises: + ValueError: If serial number is not given. + BattOrError: If BattOr not found or unexpected USB topology. + """ + # If there's only one BattOr connected to the system, just use that one. + # This allows for use on, e.g., a developer's workstation with no hubs. + devtree = find_usb_devices.GetBusNumberToDeviceTreeMap() + all_battors = GetBattOrList(devtree) + if len(all_battors) == 1: + return '/dev/' + all_battors[0] + + if not serial: + raise battor_error.BattOrError( + 'Two or more BattOrs connected, no serial provided') + + if serial_map and serial_map_file: + raise ValueError('Cannot specify both serial_map and serial_map_file') + + if serial_map_file: + serial_map = ReadSerialMapFile(serial_map_file) + + tty_string = _PhoneToPathMap(serial, serial_map, devtree) + + if not tty_string: + raise battor_error.BattOrError( + 'No device with given serial number detected.') + + if IsBattOr(tty_string, devtree): + return '/dev/' + tty_string + else: + raise battor_error.BattOrError( + 'Device with given serial number is not a BattOr.') + +if __name__ == '__main__': + # Main function for testing purposes + print GenerateSerialMap()
diff --git a/systrace/catapult/devil/devil/utils/cmd_helper.py b/systrace/catapult/devil/devil/utils/cmd_helper.py index 3c4a06e..b477c70 100644 --- a/systrace/catapult/devil/devil/utils/cmd_helper.py +++ b/systrace/catapult/devil/devil/utils/cmd_helper.py
@@ -4,7 +4,6 @@ """A wrapper for subprocess to make calling shell commands easier.""" -import codecs import logging import os import pipes @@ -16,16 +15,11 @@ import sys import time -from devil import base_error logger = logging.getLogger(__name__) _SafeShellChars = frozenset(string.ascii_letters + string.digits + '@%_-+=:,./') -# Cache the string-escape codec to ensure subprocess can find it -# later. Return value doesn't matter. -codecs.lookup('string-escape') - def SingleQuote(s): """Return an shell-escaped version of the string using single quotes. @@ -158,12 +152,12 @@ else: if shell: raise Exception('array args must be run with shell=False') - args = ' '.join(SingleQuote(str(c)) for c in args) + args = ' '.join(SingleQuote(c) for c in args) if cwd is None: cwd = '' else: cwd = ':' + cwd - logger.debug('[host]%s> %s', cwd, args) + logger.info('[host]%s> %s', cwd, args) return args @@ -193,27 +187,6 @@ return (status, stdout) -def StartCmd(args, cwd=None, shell=False, env=None): - """Starts a subprocess and returns a handle to the process. - - Args: - args: A string or a sequence of program arguments. The program to execute is - the string or the first item in the args sequence. - cwd: If not None, the subprocess's current directory will be changed to - |cwd| before it's executed. - shell: Whether to execute args as a shell command. Must be True if args - is a string and False if args is a sequence. - env: If not None, a mapping that defines environment variables for the - subprocess. - - Returns: - A process handle from subprocess.Popen. - """ - _ValidateAndLogCommand(args, cwd, shell) - return Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - shell=shell, cwd=cwd, env=env) - - def GetCmdStatusOutputAndError(args, cwd=None, shell=False, env=None): """Executes a subprocess and returns its exit code, output, and errors. @@ -237,11 +210,11 @@ return (pipe.returncode, stdout, stderr) -class TimeoutError(base_error.BaseError): +class TimeoutError(Exception): """Module-specific timeout exception.""" def __init__(self, output=None): - super(TimeoutError, self).__init__('Timeout') + super(TimeoutError, self).__init__() self._output = output @property @@ -253,7 +226,6 @@ process, iter_timeout=None, timeout=None, buffer_size=4096, poll_interval=1): """An fcntl-based implementation of _IterProcessStdout.""" - # pylint: disable=too-many-nested-blocks import fcntl try: # Enable non-blocking reads from the child's stdout.
diff --git a/systrace/catapult/devil/devil/utils/find_usb_devices.py b/systrace/catapult/devil/devil/utils/find_usb_devices.py index b6dcc70..74b888d 100755 --- a/systrace/catapult/devil/devil/utils/find_usb_devices.py +++ b/systrace/catapult/devil/devil/utils/find_usb_devices.py
@@ -452,9 +452,9 @@ for line in _GetTtyUSBInfo(tty_string).splitlines(): bus_match = _BUS_NUM_REGEX.match(line) device_match = _DEVICE_NUM_REGEX.match(line) - if bus_match and bus_num is None: + if bus_match and bus_num == None: bus_num = int(bus_match.group(1)) - if device_match and device_num is None: + if device_match and device_num == None: device_num = int(device_match.group(1)) if bus_num is None or device_num is None: raise ValueError('Info not found')
diff --git a/systrace/catapult/devil/devil/utils/find_usb_devices_test.py b/systrace/catapult/devil/devil/utils/find_usb_devices_test.py index c22f21b..e8b00c8 100755 --- a/systrace/catapult/devil/devil/utils/find_usb_devices_test.py +++ b/systrace/catapult/devil/devil/utils/find_usb_devices_test.py
@@ -17,21 +17,23 @@ Bus 002: 1: Device 011 "quux" 2: Device 020 "My Test HUB" #hub 1 -2:1: Device 021 "usb_device_p7_h1_t0" #physical port 7 on hub 1, on ttyUSB0 -2:3: Device 022 "usb_device_p5_h1_t1" #physical port 5 on hub 1, on ttyUSB1 +2:1: Device 021 "battor_p7_h1_t0" #physical port 7 on hub 1, on ttyUSB0 +2:3: Device 022 "battor_p5_h1_t1" #physical port 5 on hub 1, on ttyUSB1 2:4: Device 023 "My Test Internal HUB" #internal section of hub 1 -2:4:2: Device 024 "usb_device_p3_h1_t2" #physical port 3 on hub 1, on ttyUSB2 +2:4:2: Device 024 "battor_p3_h1_t2" #physical port 3 on hub 1, on ttyUSB2 2:4:3: Device 026 "Not a Battery Monitor" #physical port 1 on hub 1, on ttyUSB3 -2:4:4: Device 025 "usb_device_p1_h1_t3" #physical port 1 on hub 1, on ttyUSB3 +2:4:4: Device 025 "battor_p1_h1_t3" #physical port 1 on hub 1, on ttyUSB3 3: Device 100 "My Test HUB" #hub 2 3:4: Device 101 "My Test Internal HUB" #internal section of hub 2 -3:4:4: Device 102 "usb_device_p1_h2_t4" #physical port 1 on hub 2, on ttyusb4 +3:4:4: Device 102 "battor_p1_h2_t4" #physical port 1 on hub 2, on ttyusb4 """ import logging +import os import unittest from devil import devil_env +from devil.utils import battor_device_mapping from devil.utils import find_usb_devices from devil.utils import lsusb from devil.utils import usb_hubs @@ -49,15 +51,15 @@ (1, 13, 'baz'), (2, 11, 'quux'), (2, 20, 'My Test HUB'), - (2, 21, 'ID 0403:6001 usb_device_p7_h1_t0'), - (2, 22, 'ID 0403:6001 usb_device_p5_h1_t1'), + (2, 21, 'ID 0403:6001 battor_p7_h1_t0'), + (2, 22, 'ID 0403:6001 battor_p5_h1_t1'), (2, 23, 'My Test Internal HUB'), - (2, 24, 'ID 0403:6001 usb_device_p3_h1_t2'), - (2, 25, 'ID 0403:6001 usb_device_p1_h1_t3'), + (2, 24, 'ID 0403:6001 battor_p3_h1_t2'), + (2, 25, 'ID 0403:6001 battor_p1_h1_t3'), (2, 26, 'Not a Battery Monitor'), (2, 100, 'My Test HUB'), (2, 101, 'My Test Internal HUB'), - (2, 102, 'ID 0403:6001 usb_device_p1_h1_t4')] + (2, 102, 'ID 0403:6001 battor_p1_h1_t4')] LSUSB_OUTPUT = [ {'bus': b, 'device': d, 'desc': t, 'id': (1000*b)+d} @@ -80,14 +82,14 @@ T: Bus=02 Lev=00 Prnt=00 Port=01 Cnt=00 Dev#= 20 Spd=000 MxCh=00 T: Bus=02 Lev=00 Prnt=20 Port=00 Cnt=00 Dev#= 21 Spd=000 MxCh=00 -S: SerialNumber=UsbDevice0 +S: SerialNumber=BattOr0 T: Bus=02 Lev=00 Prnt=20 Port=02 Cnt=00 Dev#= 22 Spd=000 MxCh=00 -S: SerialNumber=UsbDevice1 +S: SerialNumber=BattOr1 T: Bus=02 Lev=00 Prnt=20 Port=03 Cnt=00 Dev#= 23 Spd=000 MxCh=00 T: Bus=02 Lev=00 Prnt=23 Port=01 Cnt=00 Dev#= 24 Spd=000 MxCh=00 -S: SerialNumber=UsbDevice2 +S: SerialNumber=BattOr2 T: Bus=02 Lev=00 Prnt=23 Port=03 Cnt=00 Dev#= 25 Spd=000 MxCh=00 -S: SerialNumber=UsbDevice3 +S: SerialNumber=BattOr3 T: Bus=02 Lev=00 Prnt=23 Port=02 Cnt=00 Dev#= 26 Spd=000 MxCh=00 T: Bus=02 Lev=00 Prnt=00 Port=02 Cnt=00 Dev#=100 Spd=000 MxCh=00 @@ -101,15 +103,15 @@ Bus 001 Device 013: baz Bus 002 Device 011: quux Bus 002 Device 020: My Test HUB -Bus 002 Device 021: ID 0403:6001 usb_device_p7_h1_t0 -Bus 002 Device 022: ID 0403:6001 usb_device_p5_h1_t1 +Bus 002 Device 021: ID 0403:6001 battor_p7_h1_t0 +Bus 002 Device 022: ID 0403:6001 battor_p5_h1_t1 Bus 002 Device 023: My Test Internal HUB -Bus 002 Device 024: ID 0403:6001 usb_device_p3_h1_t2 -Bus 002 Device 025: ID 0403:6001 usb_device_p1_h1_t3 +Bus 002 Device 024: ID 0403:6001 battor_p3_h1_t2 +Bus 002 Device 025: ID 0403:6001 battor_p1_h1_t3 Bus 002 Device 026: Not a Battery Monitor Bus 002 Device 100: My Test HUB Bus 002 Device 101: My Test Internal HUB -Bus 002 Device 102: ID 0403:6001 usb_device_p1_h1_t4 +Bus 002 Device 102: ID 0403:6001 battor_p1_h1_t4 ''' LIST_TTY_OUTPUT = ''' @@ -211,6 +213,17 @@ lsusb.raw_lsusb = mock.Mock( return_value=RAW_LSUSB_OUTPUT) + def testIsBattOr(self): + bd = find_usb_devices.GetBusNumberToDeviceTreeMap() + self.assertTrue(battor_device_mapping.IsBattOr('ttyUSB3', bd)) + self.assertFalse(battor_device_mapping.IsBattOr('ttyUSB5', bd)) + + def testGetBattOrs(self): + bd = find_usb_devices.GetBusNumberToDeviceTreeMap() + self.assertEquals(battor_device_mapping.GetBattOrList(bd), + ['ttyUSB0', 'ttyUSB1', 'ttyUSB2', + 'ttyUSB3', 'ttyUSB4']) + def testGetTTYDevices(self): pp = find_usb_devices.GetAllPhysicalPortToTTYMaps([TEST_HUB]) result = list(pp) @@ -234,49 +247,131 @@ def testGetSerialMapping(self): pp = find_usb_devices.GetAllPhysicalPortToSerialMaps([TEST_HUB]) result = list(pp) - self.assertEquals(result[0], {7:'UsbDevice0', - 5:'UsbDevice1', - 3:'UsbDevice2', - 1:'UsbDevice3'}) + self.assertEquals(result[0], {7:'BattOr0', + 5:'BattOr1', + 3:'BattOr2', + 1:'BattOr3'}) self.assertEquals(result[1], {}) def testFastDeviceDescriptions(self): bd = find_usb_devices.GetBusNumberToDeviceTreeMap() dev_foo = bd[1].FindDeviceNumber(11) dev_bar = bd[1].FindDeviceNumber(12) - dev_usb_device_p7_h1_t0 = bd[2].FindDeviceNumber(21) + dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21) self.assertEquals(dev_foo.desc, 'FAST foo') self.assertEquals(dev_bar.desc, 'FAST bar') - self.assertEquals(dev_usb_device_p7_h1_t0.desc, - 'ID 0403:6001 usb_device_p7_h1_t0') + self.assertEquals(dev_battor_p7_h1_t0.desc, + 'ID 0403:6001 battor_p7_h1_t0') def testDeviceDescriptions(self): bd = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=False) dev_foo = bd[1].FindDeviceNumber(11) dev_bar = bd[1].FindDeviceNumber(12) - dev_usb_device_p7_h1_t0 = bd[2].FindDeviceNumber(21) + dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21) self.assertEquals(dev_foo.desc, 'foo') self.assertEquals(dev_bar.desc, 'bar') - self.assertEquals(dev_usb_device_p7_h1_t0.desc, - 'ID 0403:6001 usb_device_p7_h1_t0') + self.assertEquals(dev_battor_p7_h1_t0.desc, + 'ID 0403:6001 battor_p7_h1_t0') def testDeviceInformation(self): bd = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=False) dev_foo = bd[1].FindDeviceNumber(11) dev_bar = bd[1].FindDeviceNumber(12) - dev_usb_device_p7_h1_t0 = bd[2].FindDeviceNumber(21) + dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21) self.assertEquals(dev_foo.info['id'], 1011) self.assertEquals(dev_bar.info['id'], 1012) - self.assertEquals(dev_usb_device_p7_h1_t0.info['id'], 2021) + self.assertEquals(dev_battor_p7_h1_t0.info['id'], 2021) def testSerialNumber(self): bd = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=False) dev_foo = bd[1].FindDeviceNumber(11) dev_bar = bd[1].FindDeviceNumber(12) - dev_usb_device_p7_h1_t0 = bd[2].FindDeviceNumber(21) + dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21) self.assertEquals(dev_foo.serial, 'FooSerial') self.assertEquals(dev_bar.serial, 'BarSerial') - self.assertEquals(dev_usb_device_p7_h1_t0.serial, 'UsbDevice0') + self.assertEquals(dev_battor_p7_h1_t0.serial, 'BattOr0') + + def testBattOrDictMapping(self): + map_dict = {'Phone1':'BattOr1', 'Phone2':'BattOr2', 'Phone3':'BattOr3'} + a1 = battor_device_mapping.GetBattOrPathFromPhoneSerial( + 'Phone1', serial_map=map_dict) + a2 = battor_device_mapping.GetBattOrPathFromPhoneSerial( + 'Phone2', serial_map=map_dict) + a3 = battor_device_mapping.GetBattOrPathFromPhoneSerial( + 'Phone3', serial_map=map_dict) + self.assertEquals(a1, '/dev/ttyUSB1') + self.assertEquals(a2, '/dev/ttyUSB2') + self.assertEquals(a3, '/dev/ttyUSB3') + + def testBattOrDictFromFileMapping(self): + try: + map_dict = {'Phone1':'BattOr1', 'Phone2':'BattOr2', 'Phone3':'BattOr3'} + curr_dir = os.path.dirname(os.path.realpath(__file__)) + filename = os.path.join(curr_dir, 'test', 'data', 'test_write_map.json') + battor_device_mapping.WriteSerialMapFile(filename, map_dict) + a1 = battor_device_mapping.GetBattOrPathFromPhoneSerial( + 'Phone1', serial_map_file=filename) + a2 = battor_device_mapping.GetBattOrPathFromPhoneSerial( + 'Phone2', serial_map_file=filename) + a3 = battor_device_mapping.GetBattOrPathFromPhoneSerial( + 'Phone3', serial_map_file=filename) + finally: + os.remove(filename) + self.assertEquals(a1, '/dev/ttyUSB1') + self.assertEquals(a2, '/dev/ttyUSB2') + self.assertEquals(a3, '/dev/ttyUSB3') + + def testReadSerialMapFile(self): + curr_dir = os.path.dirname(os.path.realpath(__file__)) + map_dict = battor_device_mapping.ReadSerialMapFile( + os.path.join(curr_dir, 'test', 'data', 'test_serial_map.json')) + self.assertEquals(len(map_dict.keys()), 3) + self.assertEquals(map_dict['Phone1'], 'BattOr1') + self.assertEquals(map_dict['Phone2'], 'BattOr2') + self.assertEquals(map_dict['Phone3'], 'BattOr3') + +original_PPTSM = find_usb_devices.GetAllPhysicalPortToSerialMaps +original_PPTTM = find_usb_devices.GetAllPhysicalPortToTTYMaps +original_GBL = battor_device_mapping.GetBattOrList +original_GBNDM = find_usb_devices.GetBusNumberToDeviceTreeMap +original_IB = battor_device_mapping.IsBattOr +original_GBSM = battor_device_mapping.GetBattOrSerialNumbers + +def setup_battor_test(serial, tty, battor, bser=None): + serial_mapper = mock.Mock(return_value=serial) + tty_mapper = mock.Mock(return_value=tty) + battor_lister = mock.Mock(return_value=battor) + devtree = mock.Mock(return_value=None) + is_battor = mock.Mock(side_effect=lambda x, y: x in battor) + battor_serials = mock.Mock(return_value=bser) + find_usb_devices.GetAllPhysicalPortToSerialMaps = serial_mapper + find_usb_devices.GetAllPhysicalPortToTTYMaps = tty_mapper + battor_device_mapping.GetBattOrList = battor_lister + find_usb_devices.GetBusNumberToDeviceTreeMap = devtree + battor_device_mapping.IsBattOr = is_battor + battor_device_mapping.GetBattOrSerialNumbers = battor_serials + +class BattOrMappingTest(unittest.TestCase): + def tearDown(self): + find_usb_devices.GetAllPhysicalPortToSerialMaps = original_PPTSM + find_usb_devices.GetAllPhysicalPortToTTYMaps = original_PPTTM + battor_device_mapping.GetBattOrList = original_GBL + find_usb_devices.GetBusNumberToDeviceTreeMap = original_GBNDM + battor_device_mapping.IsBattOr = original_IB + battor_device_mapping.GetBattOrSerialNumbers = original_GBSM + + def test_generate_serial_map(self): + setup_battor_test([{1:'Phn1', 2:'Phn2', 3:'Phn3'}, + {1:'Bat1', 2:'Bat2', 3:'Bat3'}], + [{}, + {1:'ttyUSB0', 2:'ttyUSB1', 3:'ttyUSB2'}], + ['ttyUSB0', 'ttyUSB1', 'ttyUSB2'], + ['Bat1', 'Bat2', 'Bat3']) + result = battor_device_mapping.GenerateSerialMap() + self.assertEqual(len(result), 3) + self.assertEqual(result['Phn1'], 'Bat1') + self.assertEqual(result['Phn2'], 'Bat2') + self.assertEqual(result['Phn3'], 'Bat3') if __name__ == "__main__":
diff --git a/systrace/catapult/devil/devil/utils/lazy/weak_constant.py b/systrace/catapult/devil/devil/utils/lazy/weak_constant.py index 24ad940..3558f29 100644 --- a/systrace/catapult/devil/devil/utils/lazy/weak_constant.py +++ b/systrace/catapult/devil/devil/utils/lazy/weak_constant.py
@@ -4,9 +4,6 @@ import threading -from devil.utils import reraiser_thread -from devil.utils import timeout_retry - class WeakConstant(object): """A thread-safe, lazily initialized object. @@ -16,27 +13,17 @@ """ def __init__(self, initializer): - self._initialized = threading.Event() + self._initialized = False self._initializer = initializer self._lock = threading.Lock() self._val = None def read(self): """Get the object, creating it if necessary.""" - if self._initialized.is_set(): + if self._initialized: return self._val with self._lock: - if not self._initialized.is_set(): - # We initialize the value on a separate thread to protect - # from holding self._lock indefinitely in the event that - # self._initializer hangs. - initializer_thread = reraiser_thread.ReraiserThread( - self._initializer) - initializer_thread.start() - timeout_retry.WaitFor( - lambda: initializer_thread.join(1) or not initializer_thread.isAlive(), - wait_period=0) - self._val = initializer_thread.GetReturnValue() - self._initialized.set() - + if not self._initialized: + self._val = self._initializer() + self._initialized = True return self._val
diff --git a/systrace/catapult/devil/devil/utils/lazy/weak_constant_test.py b/systrace/catapult/devil/devil/utils/lazy/weak_constant_test.py deleted file mode 100644 index 643351d..0000000 --- a/systrace/catapult/devil/devil/utils/lazy/weak_constant_test.py +++ /dev/null
@@ -1,70 +0,0 @@ -#!/usr/bin/env python -# Copyright 2018 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# pylint: disable=protected-access - -import time -import unittest - -from devil import devil_env -from devil.utils import lazy -from devil.utils import timeout_retry - -with devil_env.SysPath(devil_env.PYMOCK_PATH): - import mock - - -class DynamicSideEffect(object): - """A helper object for handling a sequence of single-use side effects.""" - - def __init__(self, side_effects): - self._side_effects = iter(side_effects or []) - - def __call__(self): - val = next(self._side_effects)() - if isinstance(val, Exception): - raise val - return val - - -class WeakConstantTest(unittest.TestCase): - - def testUninitialized(self): - """Ensure that the first read calls the initializer.""" - initializer = mock.Mock(return_value='initializer called') - test_constant = lazy.WeakConstant(initializer) - self.assertEquals( - 'initializer called', - test_constant.read()) - initializer.assert_called_once_with() - - def testInitialized(self): - """Ensure that reading doesn't reinitialize the value.""" - initializer = mock.Mock(return_value='initializer called') - test_constant = lazy.WeakConstant(initializer) - test_constant._initialized.set() - test_constant._val = 'initializer not called' - self.assertEquals( - 'initializer not called', - test_constant.read()) - self.assertFalse(initializer.mock_calls) # assert not called - - def testFirstCallHangs(self): - """Ensure that reading works even if the first initializer call hangs.""" - dyn = DynamicSideEffect([ - lambda: time.sleep(10), - lambda: 'second try worked!' - ]) - - initializer = mock.Mock(side_effect=dyn) - test_constant = lazy.WeakConstant(initializer) - self.assertEquals( - 'second try worked!', - timeout_retry.Run(test_constant.read, 1, 1)) - initializer.assert_has_calls([mock.call(), mock.call()]) - - -if __name__ == '__main__': - unittest.main()
diff --git a/systrace/catapult/devil/devil/utils/logging_common.py b/systrace/catapult/devil/devil/utils/logging_common.py index ab364a2..5aea3c6 100644 --- a/systrace/catapult/devil/devil/utils/logging_common.py +++ b/systrace/catapult/devil/devil/utils/logging_common.py
@@ -8,32 +8,13 @@ def AddLoggingArguments(parser): - """Adds standard logging flags to the parser. - - After parsing args, remember to invoke InitializeLogging() with the parsed - args, to configure the log level. - """ - group = parser.add_mutually_exclusive_group() - group.add_argument( + parser.add_argument( '-v', '--verbose', action='count', default=0, help='Log more. Use multiple times for even more logging.') - group.add_argument( - '-q', '--quiet', action='count', default=0, - help=('Log less (suppress output). Use multiple times for even less ' - 'output.')) def InitializeLogging(args, handler=None): - """Initialized the log level based on commandline flags. - - This expects to be given an "args" object with the options defined by - AddLoggingArguments(). - """ - if args.quiet >= 2: - log_level = logging.CRITICAL - elif args.quiet == 1: - log_level = logging.ERROR - elif args.verbose == 0: + if args.verbose == 0: log_level = logging.WARNING elif args.verbose == 1: log_level = logging.INFO
diff --git a/systrace/catapult/devil/devil/utils/markdown.py b/systrace/catapult/devil/devil/utils/markdown.py index ba66664..54e7ed5 100755 --- a/systrace/catapult/devil/devil/utils/markdown.py +++ b/systrace/catapult/devil/devil/utils/markdown.py
@@ -3,8 +3,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from __future__ import print_function - import argparse import imp import os @@ -184,7 +182,7 @@ A list of markdown-formatted lines. """ def should_doc(name): - return (not isinstance(module_obj.__dict__[name], types.ModuleType) + return (type(module_obj.__dict__[name]) != types.ModuleType and not name.startswith('_')) stuff_to_doc = sorted( @@ -195,9 +193,9 @@ functions_to_doc = [] for s in stuff_to_doc: - if isinstance(s, types.TypeType): + if type(s) == types.TypeType: classes_to_doc.append(s) - elif isinstance(s, types.FunctionType): + elif type(s) == types.FunctionType: functions_to_doc.append(s) command = ['devil/utils/markdown.py'] @@ -223,7 +221,7 @@ for f in functions_to_doc: content += md_function(f) - print('\n'.join(content)) + print '\n'.join(content) return 0 @@ -245,7 +243,7 @@ content.extend(md_docstring(class_obj.__doc__)) def should_doc(name, obj): - return (isinstance(obj, types.FunctionType) + return (type(obj) == types.FunctionType and (name.startswith('__') or not name.startswith('_'))) methods_to_doc = sorted(
diff --git a/systrace/catapult/devil/devil/utils/reraiser_thread.py b/systrace/catapult/devil/devil/utils/reraiser_thread.py index 6e6c810..56d95f3 100644 --- a/systrace/catapult/devil/devil/utils/reraiser_thread.py +++ b/systrace/catapult/devil/devil/utils/reraiser_thread.py
@@ -11,14 +11,12 @@ import time import traceback -from devil import base_error from devil.utils import watchdog_timer -class TimeoutError(base_error.BaseError): +class TimeoutError(Exception): """Module-specific timeout exception.""" - def __init__(self, message): - super(TimeoutError, self).__init__(message) + pass def LogThreadStack(thread, error_log_func=logging.critical): @@ -49,13 +47,10 @@ func: callable to call on a new thread. args: list of positional arguments for callable, defaults to empty. kwargs: dictionary of keyword arguments for callable, defaults to empty. - name: thread name, defaults to the function name. + name: thread name, defaults to Thread-N. """ - if not name: - if hasattr(func, '__name__') and func.__name__ != '<lambda>': - name = func.__name__ - else: - name = 'anonymous' + if not name and func.__name__ != '<lambda>': + name = func.__name__ super(ReraiserThread, self).__init__(name=name) if not args: args = [] @@ -69,17 +64,10 @@ self._exc_info = None self._thread_group = None - if sys.version_info < (3,): - # pylint: disable=exec-used - exec('''def ReraiseIfException(self): - """Reraise exception if an exception was raised in the thread.""" - if self._exc_info: - raise self._exc_info[0], self._exc_info[1], self._exc_info[2]''') - else: - def ReraiseIfException(self): - """Reraise exception if an exception was raised in the thread.""" - if self._exc_info: - raise self._exc_info[1] + def ReraiseIfException(self): + """Reraise exception if an exception was raised in the thread.""" + if self._exc_info: + raise self._exc_info[0], self._exc_info[1], self._exc_info[2] def GetReturnValue(self): """Reraise exception if present, otherwise get the return value."""
diff --git a/systrace/catapult/devil/devil/utils/reset_usb.py b/systrace/catapult/devil/devil/utils/reset_usb.py index 404a44c..0335227 100755 --- a/systrace/catapult/devil/devil/utils/reset_usb.py +++ b/systrace/catapult/devil/devil/utils/reset_usb.py
@@ -3,15 +3,12 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import sys -if sys.platform == 'win32': - raise ImportError('devil.utils.reset_usb only supported on unix systems.') - import argparse import fcntl import logging import os import re +import sys if __name__ == '__main__': sys.path.append(
diff --git a/systrace/catapult/devil/devil/utils/run_tests_helper.py b/systrace/catapult/devil/devil/utils/run_tests_helper.py index 0b9dd47..7f71b65 100644 --- a/systrace/catapult/devil/devil/utils/run_tests_helper.py +++ b/systrace/catapult/devil/devil/utils/run_tests_helper.py
@@ -14,7 +14,7 @@ _WrappedLoggingArgs = collections.namedtuple( - '_WrappedLoggingArgs', ['verbose', 'quiet']) + '_WrappedLoggingArgs', ['verbose']) def SetLogLevel(verbose_count, add_handler=True): @@ -25,5 +25,5 @@ add_handler: If true, adds a handler with |CustomFormatter|. """ logging_common.InitializeLogging( - _WrappedLoggingArgs(verbose_count, 0), + _WrappedLoggingArgs(verbose_count), handler=None if add_handler else logging.NullHandler())
diff --git a/systrace/catapult/devil/devil/utils/test/data/test_serial_map.json b/systrace/catapult/devil/devil/utils/test/data/test_serial_map.json new file mode 100644 index 0000000..f068281 --- /dev/null +++ b/systrace/catapult/devil/devil/utils/test/data/test_serial_map.json
@@ -0,0 +1 @@ +[{"phone": "Phone1", "battor": "BattOr1"}, {"phone": "Phone2", "battor": "BattOr2"}, {"phone": "Phone3", "battor": "BattOr3"}]
diff --git a/systrace/catapult/devil/devil/utils/timeout_retry.py b/systrace/catapult/devil/devil/utils/timeout_retry.py index d662c1d..2327b6b 100644 --- a/systrace/catapult/devil/devil/utils/timeout_retry.py +++ b/systrace/catapult/devil/devil/utils/timeout_retry.py
@@ -109,8 +109,7 @@ # pylint: disable=no-member timeout_thread_group.GetRemainingTime(wait_period, suffix=' waiting for condition %r' % condition_name) - if wait_period: - time.sleep(wait_period) + time.sleep(wait_period) return None
diff --git a/systrace/catapult/devil/devil/utils/update_mapping.py b/systrace/catapult/devil/devil/utils/update_mapping.py new file mode 100755 index 0000000..6666b9b --- /dev/null +++ b/systrace/catapult/devil/devil/utils/update_mapping.py
@@ -0,0 +1,47 @@ +#!/usr/bin/env python + +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import argparse +import sys + +from devil.utils import battor_device_mapping + +def parse_options(): + """Parses and checks the command-line options. + + Returns: + A tuple containing the options structure. + """ + usage = 'Usage: ./update_mapping.py [options]' + desc = ('Example: ./update_mapping.py -o mapping.json.\n' + 'This script generates and stores a file that gives the\n' + 'mapping between phone serial numbers and BattOr serial numbers\n' + 'Mapping is based on which physical ports on the USB hubs the\n' + 'devices are plugged in to. For instance, if there are two hubs,\n' + 'the phone connected to port N on the first hub is mapped to the\n' + 'BattOr connected to port N on the second hub, for each N.') + parser = argparse.ArgumentParser(usage=usage, description=desc) + parser.add_argument('-o', '--output', dest='out_file', + default='mapping.json', type=str, + action='store', help='mapping file name') + parser.add_argument('-u', '--hub', dest='hub_types', + action='append', choices=['plugable_7port', + 'plugable_7port_usb3_part2', + 'plugable_7port_usb3_part3'], + help='USB hub types.') + options = parser.parse_args() + if not options.hub_types: + options.hub_types = ['plugable_7port', 'plugable_7port_usb3_part2', + 'plugable_7port_usb3_part3'] + return options + +def main(): + options = parse_options() + battor_device_mapping.GenerateSerialMapFile(options.out_file, + options.hub_types) + +if __name__ == "__main__": + sys.exit(main())
diff --git a/systrace/catapult/devil/pylintrc b/systrace/catapult/devil/pylintrc index 1a059cf..7e024a2 100644 --- a/systrace/catapult/devil/pylintrc +++ b/systrace/catapult/devil/pylintrc
@@ -14,7 +14,6 @@ locally-enabled, missing-docstring, star-args, - wrong-import-position, [REPORTS]
diff --git a/systrace/catapult/systrace/PRESUBMIT.py b/systrace/catapult/systrace/PRESUBMIT.py index 275dfdb..1234a8d 100644 --- a/systrace/catapult/systrace/PRESUBMIT.py +++ b/systrace/catapult/systrace/PRESUBMIT.py
@@ -25,6 +25,7 @@ return [ project_dir, + input_api.os_path.join(catapult_dir, 'common', 'battor'), input_api.os_path.join(catapult_dir, 'common', 'py_trace_event'), input_api.os_path.join(catapult_dir, 'common', 'py_utils'), input_api.os_path.join(catapult_dir, 'devil'),
diff --git a/systrace/catapult/systrace/atrace_helper/jni/atrace_process_dump.cc b/systrace/catapult/systrace/atrace_helper/jni/atrace_process_dump.cc index d4dada0..ef72f78 100644 --- a/systrace/catapult/systrace/atrace_helper/jni/atrace_process_dump.cc +++ b/systrace/catapult/systrace/atrace_helper/jni/atrace_process_dump.cc
@@ -4,7 +4,6 @@ #include "atrace_process_dump.h" -#include <inttypes.h> #include <stdint.h> #include <limits> @@ -38,7 +37,7 @@ void AtraceProcessDump::RunAndPrintJson(FILE* stream) { out_ = stream; - fprintf(out_, "{\"start_ts\": \"%" PRIu64 "\", \"snapshots\":[\n", + fprintf(out_, "{\"start_ts\": \"%llu\", \"snapshots\":[\n", time_utils::GetTimestamp()); CHECK(snapshot_timer_); @@ -133,14 +132,13 @@ } void AtraceProcessDump::SerializeSnapshot() { - fprintf(out_, "{\"ts\":\"%" PRIu64 "\",\"memdump\":{\n", - snapshot_timestamp_); + fprintf(out_, "{\"ts\":\"%llu\",\"memdump\":{\n", snapshot_timestamp_); for (auto it = snapshot_.begin(); it != snapshot_.end();) { const ProcessSnapshot* process = it->second.get(); const ProcessMemoryStats* mem = &process->memory; fprintf(out_, "\"%d\":{", process->pid); - fprintf(out_, "\"vm\":%" PRIu64 ",\"rss\":%" PRIu64, + fprintf(out_, "\"vm\":%llu,\"rss\":%llu", mem->virt_kb(), mem->rss_kb()); fprintf(out_, ",\"oom_sc\":%d,\"oom_sc_adj\":%d" @@ -151,18 +149,17 @@ process->utime, process->stime); if (mem->full_stats_available()) { - fprintf(out_, ",\"pss\":%" PRIu64 ",\"swp\":%" PRIu64 - ",\"pc\":%" PRIu64 ",\"pd\":%" PRIu64 - ",\"sc\":%" PRIu64 ",\"sd\":%" PRIu64, + fprintf(out_, ",\"pss\":%llu,\"swp\":%llu" + ",\"pc\":%llu,\"pd\":%llu,\"sc\":%llu,\"sd\":%llu", mem->pss_kb(), mem->swapped_kb(), mem->private_clean_kb(), mem->private_dirty_kb(), mem->shared_clean_kb(), mem->shared_dirty_kb()); } if (mem->gpu_stats_available()) { - fprintf(out_, ",\"gpu_egl\":%" PRIu64 ",\"gpu_egl_pss\":%" PRIu64 - ",\"gpu_gl\":%" PRIu64 ",\"gpu_gl_pss\":%" PRIu64 - ",\"gpu_etc\":%" PRIu64 ",\"gpu_etc_pss\":%" PRIu64, + fprintf(out_, ",\"gpu_egl\":%llu,\"gpu_egl_pss\":%llu" + ",\"gpu_gl\":%llu,\"gpu_gl_pss\":%llu" + ",\"gpu_etc\":%llu,\"gpu_etc_pss\":%llu", mem->gpu_graphics_kb(), mem->gpu_graphics_pss_kb(), mem->gpu_gl_kb(), mem->gpu_gl_pss_kb(), mem->gpu_other_kb(), mem->gpu_other_pss_kb()); @@ -179,13 +176,11 @@ for (size_t k = 0; k < n_mmaps; ++k) { const ProcessMemoryStats::MmapInfo* mm = mem->mmap(k); fprintf(out_, - "{\"vm\":\"%" PRIx64 "-%" PRIx64 "\"," - "\"file\":\"%s\",\"flags\":\"%s\"," - "\"pss\":%" PRIu64 ",\"rss\":%" PRIu64 ",\"swp\":%" PRIu64 "," - "\"pc\":%" PRIu64 ",\"pd\":%" PRIu64 "," - "\"sc\":%" PRIu64 ",\"sd\":%" PRIu64 "}", - mm->start_addr, mm->end_addr, - mm->mapped_file, mm->prot_flags, + "{\"vm\":\"%llx-%llx\",\"file\":\"%s\",\"flags\":\"%s\"," + "\"pss\":%llu,\"rss\":%llu,\"swp\":%llu," + "\"pc\":%llu,\"pd\":%llu," + "\"sc\":%llu,\"sd\":%llu}", + mm->start_addr, mm->end_addr, mm->mapped_file, mm->prot_flags, mm->pss_kb, mm->rss_kb, mm->swapped_kb, mm->private_clean_kb, mm->private_dirty_kb, mm->shared_clean_kb, mm->shared_dirty_kb); @@ -238,12 +233,11 @@ void AtraceProcessDump::TakeAndSerializeMemInfo() { std::map<std::string, uint64_t> mem_info; CHECK(procfs_utils::ReadMemInfoStats(&mem_info)); - fprintf(out_, "{\"ts\":\"%" PRIu64 "\",\"meminfo\":{\n", - time_utils::GetTimestamp()); + fprintf(out_, "{\"ts\":\"%llu\",\"meminfo\":{\n", time_utils::GetTimestamp()); for (auto it = mem_info.begin(); it != mem_info.end(); ++it) { if (it != mem_info.begin()) fprintf(out_, ","); - fprintf(out_, "\"%s\":%" PRIu64, it->first.c_str(), it->second); + fprintf(out_, "\"%s\":%llu", it->first.c_str(), it->second); } fprintf(out_, "}}"); }
diff --git a/systrace/catapult/systrace/atrace_helper/jni/logging.h b/systrace/catapult/systrace/atrace_helper/jni/logging.h index 824fddd..c132051 100644 --- a/systrace/catapult/systrace/atrace_helper/jni/logging.h +++ b/systrace/catapult/systrace/atrace_helper/jni/logging.h
@@ -9,7 +9,6 @@ #include <errno.h> #include <stdio.h> #include <stdlib.h> -#include <string.h> #define CHECK_ARGS(COND, ERR) \ "FAILED CHECK(%s) @ %s:%d (errno: %s)\n", #COND, __FILE__, __LINE__, \
diff --git a/systrace/catapult/systrace/atrace_helper/jni/main.cc b/systrace/catapult/systrace/atrace_helper/jni/main.cc index 68593b4..764b573 100644 --- a/systrace/catapult/systrace/atrace_helper/jni/main.cc +++ b/systrace/catapult/systrace/atrace_helper/jni/main.cc
@@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <inttypes.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> @@ -46,7 +45,7 @@ if (argc == 2 && !strcmp(argv[1], "--echo-ts")) { // Used by clock sync marker to correct the difference between // Linux monotonic clocks on the device and host. - printf("%" PRIu64 "\n", time_utils::GetTimestamp()); + printf("%llu\n", time_utils::GetTimestamp()); return 0; }
diff --git a/systrace/catapult/systrace/atrace_helper/jni/process_memory_stats.cc b/systrace/catapult/systrace/atrace_helper/jni/process_memory_stats.cc index fbad23b..e13dc22 100644 --- a/systrace/catapult/systrace/atrace_helper/jni/process_memory_stats.cc +++ b/systrace/catapult/systrace/atrace_helper/jni/process_memory_stats.cc
@@ -4,7 +4,6 @@ #include "process_memory_stats.h" -#include <inttypes.h> #include <stdio.h> #include <stdlib.h> @@ -74,8 +73,7 @@ // Note that the mapped file name ([stack]) is optional and won't be // present on anonymous memory maps (hence res >= 3 below). int res = sscanf(line, - "%" PRIx64 "-%" PRIx64 " %4s %*" PRIx64 " %*[:0-9a-f] " - "%*[0-9a-f]%*[ \t]%127[^\n]", + "%llx-%llx %4s %*llx %*[:0-9a-f] %*[0-9a-f]%*[ \t]%127[^\n]", &new_mmap->start_addr, &new_mmap->end_addr, new_mmap->prot_flags, new_mmap->mapped_file); last_mmap_entry = new_mmap.get();
diff --git a/systrace/catapult/systrace/atrace_helper/jni/time_utils.cc b/systrace/catapult/systrace/atrace_helper/jni/time_utils.cc index 3c8aa16..2da7d79 100644 --- a/systrace/catapult/systrace/atrace_helper/jni/time_utils.cc +++ b/systrace/catapult/systrace/atrace_helper/jni/time_utils.cc
@@ -7,7 +7,6 @@ #include <sys/time.h> #include <sys/timerfd.h> #include <time.h> -#include <unistd.h> #include "logging.h"
diff --git a/systrace/catapult/systrace/bin/adb_profile_chrome_startup b/systrace/catapult/systrace/bin/adb_profile_chrome_startup index 42b37df..6bd3270 100755 --- a/systrace/catapult/systrace/bin/adb_profile_chrome_startup +++ b/systrace/catapult/systrace/bin/adb_profile_chrome_startup
@@ -53,12 +53,6 @@ parser.add_option('-t', '--time', help='Stops tracing after N seconds, 0 to ' 'manually stop (startup trace ends after at most 5s).', default=5, metavar='N', type='int', dest='trace_time') - parser.add_option('-c', '--chrome_categories', help='Chrome tracing ' - 'categories to record.', default=_DEFAULT_CHROME_CATEGORIES, - type='string') - parser.add_option('-u', '--atrace-buffer-size', help='Number of bytes to' - ' be used for capturing atrace data', type='int', - default=None, dest='trace_buf_size') parser.add_option_group(chrome_startup_tracing_agent.add_options(parser)) parser.add_option_group(atrace_agent.add_options(parser)) @@ -97,6 +91,7 @@ # removed. options.ring_buffer = False options.trace_memory = False + options.chrome_categories = _DEFAULT_CHROME_CATEGORIES if options.atrace_categories in ['list', 'help']: atrace_agent.list_categories(atrace_agent.get_config(options))
diff --git a/systrace/catapult/systrace/profile_chrome/chrome_startup_tracing_agent.py b/systrace/catapult/systrace/profile_chrome/chrome_startup_tracing_agent.py index 53be30c..e389c15 100644 --- a/systrace/catapult/systrace/profile_chrome/chrome_startup_tracing_agent.py +++ b/systrace/catapult/systrace/profile_chrome/chrome_startup_tracing_agent.py
@@ -5,9 +5,8 @@ import logging import optparse import os -import re - import py_utils +import re from devil.android import flag_changer from devil.android.constants import webapk @@ -40,7 +39,7 @@ def _SetupTracing(self): # TODO(lizeb): Figure out how to clean up the command-line file when # _TearDownTracing() is not executed in StopTracing(). - flags = ['--trace-startup', '--enable-perfetto'] + flags = ['--trace-startup'] if self._trace_time is not None: flags.append('--trace-startup-duration={}'.format(self._trace_time)) self._flag_changer.AddFlags(flags)
diff --git a/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent.py b/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent.py index 285d299..1e8895b 100644 --- a/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent.py +++ b/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent.py
@@ -5,9 +5,8 @@ import json import optparse import os -import re - import py_utils +import re from devil.android import device_errors from devil.android.sdk import intent @@ -210,8 +209,6 @@ categories.append('disabled-by-default-blink.scheduler') categories.append('disabled-by-default-cc.debug.scheduler') categories.append('disabled-by-default-renderer.scheduler') - categories.append('disabled-by-default-sequence_manager') - categories.append('sequence_manager') if config.chrome_categories: categories += config.chrome_categories.split(',') return categories
diff --git a/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent_unittest.py b/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent_unittest.py index 1556762..25c701a 100644 --- a/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent_unittest.py +++ b/systrace/catapult/systrace/profile_chrome/chrome_tracing_agent_unittest.py
@@ -17,7 +17,7 @@ @decorators.Disabled def testGetCategories(self): curr_browser = self.GetChromeProcessID() - if curr_browser is None: + if curr_browser == None: self.StartBrowser() categories = \ @@ -35,7 +35,7 @@ @decorators.Disabled def testTracing(self): curr_browser = self.GetChromeProcessID() - if curr_browser is None: + if curr_browser == None: self.StartBrowser() categories = '*'
diff --git a/systrace/catapult/systrace/profile_chrome/ddms_tracing_agent.py b/systrace/catapult/systrace/profile_chrome/ddms_tracing_agent.py index d978939..9d041b9 100644 --- a/systrace/catapult/systrace/profile_chrome/ddms_tracing_agent.py +++ b/systrace/catapult/systrace/profile_chrome/ddms_tracing_agent.py
@@ -4,9 +4,8 @@ import optparse import os -import re - import py_utils +import re from profile_chrome import util from systrace import trace_result
diff --git a/systrace/catapult/systrace/profile_chrome/perf_tracing_agent.py b/systrace/catapult/systrace/profile_chrome/perf_tracing_agent.py index 1414905..65831df 100644 --- a/systrace/catapult/systrace/profile_chrome/perf_tracing_agent.py +++ b/systrace/catapult/systrace/profile_chrome/perf_tracing_agent.py
@@ -5,13 +5,12 @@ import logging import optparse import os +import py_utils import signal import subprocess import sys import tempfile -import py_utils - from devil.android import device_temp_file from devil.android.perf import perf_control @@ -23,7 +22,7 @@ os.path.dirname(os.path.abspath(__file__)), '..', '..') sys.path.append(os.path.join(_CATAPULT_DIR, 'telemetry')) try: - # pylint: disable=F0401,no-name-in-module,wrong-import-position + # pylint: disable=F0401 from telemetry.internal.platform.profiler import android_profiling_helper from telemetry.internal.util import binary_manager except ImportError:
diff --git a/systrace/catapult/systrace/profile_chrome/profiler_unittest.py b/systrace/catapult/systrace/profile_chrome/profiler_unittest.py index cd7af95..9b35753 100644 --- a/systrace/catapult/systrace/profile_chrome/profiler_unittest.py +++ b/systrace/catapult/systrace/profile_chrome/profiler_unittest.py
@@ -18,7 +18,7 @@ def setUp(self): ui.EnableTestMode() self._tracing_options = tracing_controller.TracingControllerConfig(None, - None, None, None, None, None, None, None, None, None) + None, None, None, None, None, None, None, None) @decorators.ClientOnlyTest def testCaptureBasicProfile(self):
diff --git a/systrace/catapult/systrace/systrace/__init__.py b/systrace/catapult/systrace/systrace/__init__.py index 730c164..831f774 100644 --- a/systrace/catapult/systrace/systrace/__init__.py +++ b/systrace/catapult/systrace/systrace/__init__.py
@@ -19,6 +19,7 @@ _CATAPULT_DIR = os.path.join( os.path.dirname(os.path.abspath(__file__)), os.path.pardir, os.path.pardir) +_AddDirToPythonPath(_CATAPULT_DIR, 'common', 'battor') _AddDirToPythonPath(_CATAPULT_DIR, 'common', 'py_utils') _AddDirToPythonPath(_CATAPULT_DIR, 'common', 'py_trace_event') _AddDirToPythonPath(_CATAPULT_DIR, 'common', 'py_trace_event', 'py_trace_event')
diff --git a/systrace/catapult/systrace/systrace/output_generator.py b/systrace/catapult/systrace/systrace/output_generator.py index b1dc275..6b63ac8 100644 --- a/systrace/catapult/systrace/systrace/output_generator.py +++ b/systrace/catapult/systrace/systrace/output_generator.py
@@ -25,6 +25,7 @@ 'androidProcessDump': trace_data.ANDROID_PROCESS_DATA_PART, 'atraceProcessDump': trace_data.ATRACE_PROCESS_DUMP_PART, 'systemTraceEvents': trace_data.ATRACE_PART, + 'powerTraceAsString': trace_data.BATTOR_TRACE_PART, 'systraceController': trace_data.TELEMETRY_PART, 'traceEvents': trace_data.CHROME_TRACE_PART, 'waltTrace': trace_data.WALT_TRACE_PART, @@ -33,13 +34,12 @@ def NewGenerateHTMLOutput(trace_results, output_file_name): - with trace_data.TraceDataBuilder() as builder: - for trace in trace_results: - trace_data_part = _SYSTRACE_TO_TRACE_DATA_NAME_MAPPING.get( - trace.source_name) - builder.AddTraceFor( - trace_data_part, trace.raw_data, allow_unstructured=True) - builder.Serialize(output_file_name, _SYSTRACE_HEADER) + trace_data_builder = trace_data.TraceDataBuilder() + for trace in trace_results: + trace_data_part = _SYSTRACE_TO_TRACE_DATA_NAME_MAPPING.get( + trace.source_name) + trace_data_builder.AddTraceFor(trace_data_part, trace.raw_data) + trace_data_builder.AsData().Serialize(output_file_name, _SYSTRACE_HEADER) def GenerateHTMLOutput(trace_results, output_file_name):
diff --git a/systrace/catapult/systrace/systrace/output_generator_unittest.py b/systrace/catapult/systrace/systrace/output_generator_unittest.py index 2347316..58e11ac 100644 --- a/systrace/catapult/systrace/systrace/output_generator_unittest.py +++ b/systrace/catapult/systrace/systrace/output_generator_unittest.py
@@ -9,17 +9,17 @@ import os import unittest -from py_utils import tempfile_ext from systrace import decorators from systrace import output_generator from systrace import trace_result from systrace import update_systrace_trace_viewer +from systrace import util from tracing.trace_data import trace_data as trace_data_module TEST_DIR = os.path.join(os.path.dirname(__file__), 'test_data') ATRACE_DATA = os.path.join(TEST_DIR, 'atrace_data') -ATRACE_PROCESS_DUMP_DATA = os.path.join(TEST_DIR, 'atrace_procfs_dump') +BATTOR_DATA = os.path.join(TEST_DIR, 'battor_test_data.txt') COMBINED_PROFILE_CHROME_DATA = os.path.join( TEST_DIR, 'profile-chrome_systrace_perf_chrome_data') @@ -52,14 +52,18 @@ update_systrace_trace_viewer.SYSTRACE_TRACE_VIEWER_HTML_FILE)) with open(ATRACE_DATA) as f: atrace_data = f.read().replace(" ", "").strip() - trace_results = [trace_result.TraceResult('systemTraceEvents', atrace_data)] - with tempfile_ext.TemporaryFileName() as output_file_name: - output_generator.GenerateHTMLOutput(trace_results, output_file_name) + trace_results = [trace_result.TraceResult('systemTraceEvents', + atrace_data)] + output_file_name = util.generate_random_filename_for_test() + final_path = output_generator.GenerateHTMLOutput(trace_results, + output_file_name) with open(output_file_name, 'r') as f: + output_generator.GenerateHTMLOutput(trace_results, f.name) html_output = f.read() - trace_data = (html_output.split( - '<script class="trace-data" type="application/text">')[1].split( - '</script>'))[0].replace(" ", "").strip() + trace_data = (html_output.split( + '<script class="trace-data" type="application/text">')[1].split( + '</script>'))[0].replace(" ", "").strip() + os.remove(final_path) # Ensure the trace data written in HTML is located within the # correct place in the HTML document and that the data is not @@ -70,42 +74,50 @@ @decorators.HostOnlyTest def testHtmlOutputGenerationFormatsMultipleTraces(self): trace_results = [] - with trace_data_module.TraceDataBuilder() as trace_data_builder: - with open(ATRACE_DATA) as fp: - atrace_data = fp.read() - trace_results.append( - trace_result.TraceResult('systemTraceEvents', atrace_data)) - trace_data_builder.AddTraceFor(trace_data_module.ATRACE_PART, atrace_data, - allow_unstructured=True) + trace_data_builder = trace_data_module.TraceDataBuilder() - with open(ATRACE_PROCESS_DUMP_DATA) as fp: - atrace_process_dump_data = fp.read() - trace_results.append(trace_result.TraceResult( - 'atraceProcessDump', atrace_process_dump_data)) - trace_data_builder.AddTraceFor(trace_data_module.ATRACE_PROCESS_DUMP_PART, - atrace_process_dump_data, - allow_unstructured=True) + with open(BATTOR_DATA) as fp: + battor_data = fp.read() + trace_results.append( + trace_result.TraceResult('powerTraceAsString', battor_data)) + trace_data_builder.AddTraceFor( + trace_data_module.BATTOR_TRACE_PART, battor_data) - with open(COMBINED_PROFILE_CHROME_DATA) as fp: - chrome_data = json.load(fp) - trace_results.append( - trace_result.TraceResult('traceEvents', chrome_data)) - trace_data_builder.AddTraceFor( - trace_data_module.CHROME_TRACE_PART, chrome_data) + with open(ATRACE_DATA) as fp: + atrace_data = fp.read() + trace_results.append( + trace_result.TraceResult('systemTraceEvents', atrace_data)) + trace_data_builder.AddTraceFor(trace_data_module.ATRACE_PART, atrace_data) - trace_results.append( - trace_result.TraceResult('systraceController', str({}))) - trace_data_builder.AddTraceFor(trace_data_module.TELEMETRY_PART, {}) - with tempfile_ext.NamedTemporaryDirectory() as temp_dir: - data_builder_out = os.path.join(temp_dir, 'data_builder.html') - output_generator_out = os.path.join(temp_dir, 'output_generator.html') - output_generator.GenerateHTMLOutput(trace_results, output_generator_out) - trace_data_builder.Serialize(data_builder_out, 'Systrace') + with open(COMBINED_PROFILE_CHROME_DATA) as fp: + chrome_data = fp.read() + trace_results.append( + trace_result.TraceResult('traceEvents', json.loads(chrome_data))) + trace_data_builder.AddTraceFor( + trace_data_module.CHROME_TRACE_PART, json.loads(chrome_data)) - output_generator_md5sum = hashlib.md5( - open(output_generator_out, 'rb').read()).hexdigest() - data_builder_md5sum = hashlib.md5( - open(data_builder_out, 'rb').read()).hexdigest() + trace_results.append( + trace_result.TraceResult('systraceController', str({}))) + trace_data_builder.AddTraceFor(trace_data_module.TELEMETRY_PART, {}) - self.assertEqual(output_generator_md5sum, data_builder_md5sum) + try: + data_builder_out = util.generate_random_filename_for_test() + output_generator_out = util.generate_random_filename_for_test() + output_generator.GenerateHTMLOutput(trace_results, output_generator_out) + trace_data_builder.AsData().Serialize(data_builder_out, 'Systrace') + + output_generator_md5sum = hashlib.md5( + open(output_generator_out, 'rb').read()).hexdigest() + data_builder_md5sum = hashlib.md5( + open(data_builder_out, 'rb').read()).hexdigest() + + self.assertEqual(output_generator_md5sum, data_builder_md5sum) + finally: + def del_if_exist(path): + try: + os.remove(path) + except IOError: + pass + del_if_exist(output_generator_out) + del_if_exist(data_builder_out)
diff --git a/systrace/catapult/systrace/systrace/run_systrace.py b/systrace/catapult/systrace/systrace/run_systrace.py index 15a39a3..cb32036 100755 --- a/systrace/catapult/systrace/systrace/run_systrace.py +++ b/systrace/catapult/systrace/systrace/run_systrace.py
@@ -14,7 +14,6 @@ # The flags= parameter of re.sub() is new in Python 2.7. And Systrace does not # support Python 3 yet. -# pylint: disable=wrong-import-position import sys version = sys.version_info[:2] @@ -45,12 +44,13 @@ from systrace.tracing_agents import atrace_agent from systrace.tracing_agents import atrace_from_file_agent from systrace.tracing_agents import atrace_process_dump +from systrace.tracing_agents import battor_trace_agent from systrace.tracing_agents import ftrace_agent from systrace.tracing_agents import walt_agent ALL_MODULES = [atrace_agent, atrace_from_file_agent, atrace_process_dump, - ftrace_agent, walt_agent] + battor_trace_agent, ftrace_agent, walt_agent] def parse_options(argv): @@ -158,16 +158,13 @@ if options.target == 'android' and not options.from_file: initialize_devil() - devices = [a.GetDeviceSerial() for a in adb_wrapper.AdbWrapper.Devices()] if not options.device_serial_number: + devices = [a.GetDeviceSerial() for a in adb_wrapper.AdbWrapper.Devices()] if len(devices) == 0: raise RuntimeError('No ADB devices connected.') elif len(devices) >= 2: raise RuntimeError('Multiple devices connected, serial number required') options.device_serial_number = devices[0] - elif options.device_serial_number not in devices: - raise RuntimeError('Device with the serial number "%s" is not connected.' - % options.device_serial_number) # If list_categories is selected, just print the list of categories. # In this case, use of the tracing controller is not necessary.
diff --git a/systrace/catapult/systrace/systrace/systrace_runner.py b/systrace/catapult/systrace/systrace/systrace_runner.py index 514f5bb..b3d9324 100644 --- a/systrace/catapult/systrace/systrace/systrace_runner.py +++ b/systrace/catapult/systrace/systrace/systrace_runner.py
@@ -14,12 +14,13 @@ from systrace.tracing_agents import atrace_agent from systrace.tracing_agents import atrace_from_file_agent from systrace.tracing_agents import atrace_process_dump +from systrace.tracing_agents import battor_trace_agent from systrace.tracing_agents import ftrace_agent from systrace.tracing_agents import walt_agent AGENT_MODULES = [android_process_data_agent, atrace_agent, atrace_from_file_agent, atrace_process_dump, - ftrace_agent, walt_agent] + battor_trace_agent, ftrace_agent, walt_agent] class SystraceRunner(object): def __init__(self, script_dir, options):
diff --git a/systrace/catapult/systrace/systrace/systrace_trace_viewer.html b/systrace/catapult/systrace/systrace/systrace_trace_viewer.html index ad9472e..1b7fb39 100644 --- a/systrace/catapult/systrace/systrace/systrace_trace_viewer.html +++ b/systrace/catapult/systrace/systrace/systrace_trace_viewer.html
@@ -108,7 +108,7 @@ text-decoration: underline; } </style> - <a href="{{href}}" on-click="onClicked_" on-mouseenter="onMouseEnter_" on-mouseleave="onMouseLeave_"><slot></slot></a> + <a href="{{href}}" on-click="onClicked_" on-mouseenter="onMouseEnter_" on-mouseleave="onMouseLeave_"><content></content></a> </template> </dom-module><dom-module id="tr-ui-b-table"> @@ -614,21 +614,23 @@ </style> <div class="header"> {{name}} - <template if="{{_computeIfSKP(richDetails)}}" is="dom-if"> + <template if="{{_computeIf(richDetails)}}" is="dom-if"> <a class="extra" download="drawing.skp" href$="{{_computeHref(richDetails)}}" on-click="{{stopPropagation}}">SKP</a> </template> </div> <div class="details"> - <template if="{{rawDetails}}" is="dom-if"> + <template if="{{rawDetails}}"> <div class="raw-details">{{rawDetails}}</div> </template> - <template if="{{richDetails}}" is="dom-if"> + <template bind="{{richDetails}}" if="{{richDetails}}" is="dom-if"> <dl> - <template if="{{richDetails.visualRect}}" is="dom-if"> + <template bind="{{cullRect}}" if="{{cullRect}}" is="dom-if"> + <dt>Cull rect</dt> + <dd>{{x}},{{y}} {{width}}×{{height}}</dd> + </template> + <template bind="{{visualRect}}" if="{{visualRect}}" is="dom-if"> <dt>Visual rect</dt> - <dd>{{richDetails.visualRect.x}},{{richDetails.visualRect.y}} - {{richDetails.visualRect.width}}×{{richDetails.visualRect.height}} - </dd> + <dd>{{x}},{{y}} {{width}}×{{height}}</dd> </template> </dl> </template> @@ -653,11 +655,7 @@ </display-item-info> </left-panel> <right-panel> - <raster-area> - <canvas-scroller> - <canvas></canvas> - </canvas-scroller> - </raster-area> + <raster-area><canvas></canvas></raster-area> </right-panel> </template><template id="quad-stack-view-template"> <style> @@ -678,9 +676,7 @@ <div id="header"></div> <input id="stacking-distance-slider" max="400" min="1" step="1" type="range"/> - <div id="canvas-scroller"> - <canvas id="canvas"></canvas> - </div> + <canvas id="canvas"></canvas> <img id="chrome-left"/> <img id="chrome-mid"/> <img id="chrome-right"/> @@ -760,20 +756,6 @@ </div> <tr-ui-b-table id="content"></tr-ui-b-table> </template> -</dom-module><dom-module id="tr-ui-e-chrome-codesearch"> - <template> - <style> - :host { - white-space: nowrap; - } - #codesearchLink { - font-size: x-small; - margin-left: 20px; - text-decoration: none; - } - </style> - <a id="codesearchLink" on-click="onClick" target="_blank">🔍</a> - </template> </dom-module><style> .tr-ui-e-chrome-gpu-state-snapshot-view{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAEwATABMYqp3KAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB90JCQsBMCH7ZqYAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAUElEQVRYw+3WwQkAIAiF4Vc0hTO5/wiuURvYIcQOv1cRPhDlDXffSsrMsrYiQi/zU80FAACAVX3nt3lWAABA/x+ovnPyAAAA5AHyAAAA3wMOd34Xd+lsglgAAAAASUVORK5CYII=);display:flex;overflow:auto}.tr-ui-e-chrome-gpu-state-snapshot-view img{display:block;margin:16px auto 16px auto} </style><dom-module id="tr-ui-a-layout-tree-sub-view"> @@ -956,7 +938,6 @@ </style> <div style="padding-right: 200px"> <div style="float:right; border-style: solid; border-width: 1px; padding:20px"> - X no feedback<br/> 0 uninitialized<br/> . premonomorphic<br/> 1 monomorphic<br/> @@ -1090,13 +1071,7 @@ #subView { flex: 1 1 auto; - min-width: 0; - display: flex; - } - - #subView > * { - flex: 1 1 auto; - min-width: 0; + overflow: auto; } </style> <div hidden="[[tabsHidden]]" id="tabs"> @@ -1114,8 +1089,8 @@ </template> </div> <div id="subView"></div> - <slot> - </slot> + <content> + </content> </template> </dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-breakdown-view"> <template> @@ -1553,10 +1528,25 @@ <div id="links"></div> </template> </dom-module><dom-module id="tr-v-ui-related-event-set-span"> +</dom-module><dom-module id="tr-v-ui-related-histogram-map-span"> + <template> + <tr-ui-b-table id="table"></tr-ui-b-table> + </template> </dom-module><dom-module id="tr-v-ui-scalar-diagnostic-span"> <template> <tr-v-ui-scalar-span id="scalar"></tr-v-ui-scalar-span> </template> +</dom-module><dom-module id="tr-v-ui-tag-map-span"> + <template> + <style> + #hide, #generic { + display: none; + } + </style> + <button id="show" on-click="onShow_">Show</button> + <button id="hide" on-click="onHide_">Hide</button> + <tr-ui-a-generic-object-view id="generic"></tr-ui-a-generic-object-view> + </template> </dom-module><dom-module id="tr-v-ui-unmergeable-diagnostic-set-span"> </dom-module><dom-module id="tr-v-ui-diagnostic-map-table"> <template> @@ -1812,7 +1802,6 @@ #content { display: flex; flex: 1 1 auto; - min-width: 0; } #content > tr-ui-a-related-events { margin-left: 8px; @@ -1829,7 +1818,6 @@ } #content { flex: 1 1 auto; - min-width: 0; } </style> <tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view> @@ -2038,7 +2026,7 @@ vertical-align: top; } </style> - <slot></slot> + <content></content> </template> </dom-module><dom-module id="tr-ui-a-power-sample-table"> <template> @@ -2190,30 +2178,30 @@ height: 525px; } </style> - <slot></slot> + <content></content> </template> </dom-module><dom-module id="tr-ui-b-dropdown"> <template> <style> button { - @apply --dropdown-button; + @apply(--dropdown-button); } button.open { - @apply --dropdown-button-open; + @apply(--dropdown-button-open); } dialog { position: absolute; margin: 0; padding: 1em; border: 1px solid darkgrey; - @apply --dropdown-dialog; + @apply(--dropdown-dialog); } </style> <button id="button" on-tap="open">[[label]]</button> <dialog id="dialog" on-cancel="close" on-tap="onDialogTap_"> - <slot></slot> + <content></content> </dialog> </template> </dom-module><dom-module id="tr-ui-b-info-bar-group"> @@ -2254,7 +2242,7 @@ } </style> <div id="aligner"> - <slot></slot> + <content></content> </div> </template> </dom-module><style> @@ -2283,7 +2271,7 @@ </style><style> .thread-track{flex-direction:column;display:flex;position:relative} </style><style> -.process-track-header{display:flex;flex:0 0 auto;background-image:-webkit-gradient(linear,0 0,100% 0,from(#E5E5E5),to(#D1D1D1));border-bottom:1px solid #8e8e8e;border-top:1px solid white;font-size:75%}.process-track-name{flex-grow:1}.process-track-name:before{content:'\25B8';padding:0 5px}.process-track-base.expanded .process-track-name:before{content:'\25BE'}.process-track-close{color:black;border:1px solid transparent;padding:0px 2px}.process-track-close:hover{border:1px solid grey} +.process-track-header{flex:0 0 auto;background-image:-webkit-gradient(linear,0 0,100% 0,from(#E5E5E5),to(#D1D1D1));border-bottom:1px solid #8e8e8e;border-top:1px solid white;font-size:75%}.process-track-name:before{content:'\25B8';padding:0 5px}.process-track-base.expanded .process-track-name:before{content:'\25BE'} </style><style> .model-track { flex-grow: 1; @@ -2324,7 +2312,7 @@ font-size: 8pt; } </style> - <slot></slot> + <content></content> <div id="drag_box"></div> <div id="hint_text"></div> @@ -2827,7 +2815,7 @@ tr-ui-b-drag-handle { flex: 0 0 auto; } tr-ui-a-analysis-view { flex: 0 0 auto; } - #view_options_dropdown, #process_filter_dropdown { + #view_options_dropdown { --dropdown-button: { -webkit-appearance: none; align-items: normal; @@ -2848,7 +2836,6 @@ <div id="left_controls"></div> <div id="title">^_^</div> <div id="right_controls"> - <tr-ui-b-dropdown id="process_filter_dropdown" label="Processes"></tr-ui-b-dropdown> <tr-ui-b-toolbar-button id="view_metadata_button"> M </tr-ui-b-toolbar-button> @@ -2867,7 +2854,7 @@ </tr-ui-b-info-bar-group> </div> <middle-container> - <slot></slot> + <content></content> <tr-ui-side-panel-container id="side_panel_container"> </tr-ui-side-panel-container> @@ -3075,10 +3062,6 @@ margin-right: 20px; } - #show_visualization { - margin-right: 20px; - } - #export { margin-right: 20px; } @@ -3124,8 +3107,6 @@ <select id="statistic" value="{{displayStatisticName::change}}"> </select> - <button id="show_visualization" on-tap="loadVisualization_">Visualize</button> - <tr-ui-b-dropdown label="Export"> <tr-v-ui-histogram-set-controls-export> </tr-v-ui-histogram-set-controls-export> @@ -3351,221 +3332,6 @@ <tr-ui-b-table id="table"> </tr-ui-b-table></template> -</dom-module><dom-module id="tr-v-ui-metrics-visualization"> - <template> - <style> - button { - padding: 5px; - font-size: 14px; - } - - .text_input { - width: 50px; - padding: 4px; - font-size: 14px; - } - - .error { - color: red; - display: none; - } - - .container { - position: relative; - display: inline-block; - margin-left: 15px; - } - - #title { - font-size: 20px; - font-weight: bold; - padding-bottom: 5px; - } - - #selectors { - display: block; - padding-bottom: 10px; - } - - #search_page { - width: 200px; - margin-left: 30px; - } - - #close { - display: none; - vertical-align: top; - } - - #close svg{ - height: 1em; - } - - #close svg line { - stroke-width: 18; - stroke: black; - } - - #close:hover svg { - background: black; - } - - #close:hover svg line { - stroke: white; - } - </style> - <span class="container" id="aggregateContainer"> - </span> - <span class="container" id="pageByPageContainer"> - <span id="selectors"> - <span id="percentile_label">Percentile Range:</span> - <input class="text_input" id="start" placeholder="0"/> - <input class="text_input" id="end" placeholder="100"/> - <button id="filter" on-tap="filterByPercentile_">Filter</button> - <input class="text_input" id="search_page" placeholder="Page Name"/> - <button id="search" on-tap="searchByPage_">Search</button> - <span class="error" id="search_error">Sorry, could not find that page!</span> - </span> - </span> - <div display="block" id="submetricsContainer"> - <span id="close"> - <svg viewBox="0 0 128 128"> - <line x1="28" x2="100" y1="28" y2="100"></line> - <line x1="28" x2="100" y1="100" y2="28"></line> - </svg> - </span> - </div> - </template> -</dom-module><dom-module id="tr-v-ui-raster-visualization"> - <template> - <style> - button { - padding: 5px; - font-size: 14px; - } - .error { - color: red; - display: none; - } - - .text_input { - width: 200px; - padding: 4px; - font-size: 14px; - } - - .selector_container{ - padding: 5px; - } - - #search { - display: inline-block; - padding-bottom: 10px; - } - - #search_page { - width: 200px; - } - - #pageSelector { - display: inline-block; - font-size: 12pt; - } - - #close { - display: none; - vertical-align: top; - } - - #close svg{ - height: 1em; - } - - #close svg line { - stroke-width: 18; - stroke: black; - } - - #close:hover svg { - background: black; - } - - #close:hover svg line { - stroke: white; - } - </style> - <span id="aggregateContainer"> - <div> - <div class="selector_container"> - <span id="select_page_label">Individual Page Results:</span> - <select id="pageSelector"> - <option id="select_page" value="">Select a page</option> - </select> - </div> - <div class="selector_container"> - <div id="search_page_label">Search for a page:</div> - <input class="text_input" id="search_page" placeholder="Page Name"/> - <button id="search_button">Search</button> - <div class="error" id="search_error">Sorry, could not find that page!</div> - </div> - </div> - </span> - <span id="pageContainer"> - <span id="close"> - <svg viewBox="0 0 128 128"> - <line x1="28" x2="100" y1="28" y2="100"></line> - <line x1="28" x2="100" y1="100" y2="28"></line> - </svg> - </span> - </span> - </template> -</dom-module><meta charset="utf-8"/><dom-module id="tr-v-ui-visualizations-data-container"> - <template> - <style> - .error { - color: red; - display: none; - } - - .sample{ - display: none; - } - - .subtitle{ - font-size: 20px; - font-weight: bold; - padding-bottom: 5px; - } - - .description{ - font-size: 15px; - padding-bottom: 5px; - } - - #title { - font-size: 30px; - font-weight: bold; - padding-bottom: 5px; - } - </style> - <div id="title">Visualizations</div> - <div class="error" id="data_error">Invalid data provided.</div> - <div id="pipeline_per_frame_container"> - <div class="subtitle">Graphics Pipeline and Raster Tasks</div> - <div class="description"> - When raster tasks are completed in comparison to the rest of the graphics pipeline.<br/> - Only pages where raster tasks are completed after beginFrame is issued are included. - </div> - <tr-v-ui-raster-visualization id="rasterVisualization"> - </tr-v-ui-raster-visualization> - </div> - <div id="metrics_container"> - <div class="subtitle">Metrics</div> - <div class="description">Total amount of time taken for the indicated metrics.</div> - <tr-v-ui-metrics-visualization class="sample" id="metricsVisualization"> - </tr-v-ui-metrics-visualization> - </div> - </template> </dom-module><dom-module id="tr-v-ui-histogram-set-view"> <template> <style> @@ -3586,10 +3352,6 @@ #container { display: none; } - - #visualizations{ - display: none; - } </style> <div id="zero">zero Histograms</div> @@ -3598,9 +3360,6 @@ <tr-v-ui-histogram-set-controls id="controls"> </tr-v-ui-histogram-set-controls> - <tr-v-ui-visualizations-data-container id="visualizations"> - </tr-v-ui-visualizations-data-container> - <tr-v-ui-histogram-set-table id="table"></tr-v-ui-histogram-set-table> </div> </template> @@ -3711,7 +3470,7 @@ break;case Array:try{value=JSON.parse(value);}catch(x){value=null;console.warn('Polymer::Attributes: couldn`t decode Array as JSON');} break;case Date:value=new Date(value);break;case String:default:break;} return value;},serialize:function(value){switch(typeof value){case'boolean':return value?'':undefined;case'object':if(value instanceof Date){return value.toString();}else if(value){try{return JSON.stringify(value);}catch(x){return'';}} -default:return value!=null?value:undefined;}}});Polymer.version="1.11.3";Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();this._prepBehaviors();this._prepConstructor();this._prepPropertyInfo();},_prepBehavior:function(b){this._addHostAttributes(b.hostAttributes);},_marshalBehavior:function(b){},_initFeatures:function(){this._marshalHostAttributes();this._marshalBehaviors();}});(function(){function resolveCss(cssText,ownerDocument){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+'\''+resolve(url.replace(/["']/g,''),ownerDocument)+'\''+post;});} +default:return value!=null?value:undefined;}}});Polymer.version="1.10.1";Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();this._prepBehaviors();this._prepConstructor();this._prepPropertyInfo();},_prepBehavior:function(b){this._addHostAttributes(b.hostAttributes);},_marshalBehavior:function(b){},_initFeatures:function(){this._marshalHostAttributes();this._marshalBehaviors();}});(function(){function resolveCss(cssText,ownerDocument){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+'\''+resolve(url.replace(/["']/g,''),ownerDocument)+'\''+post;});} function resolveAttrs(element,ownerDocument){for(var name in URL_ATTRS){var a$=URL_ATTRS[name];for(var i=0,l=a$.length,a,at,v;i<l&&(a=a$[i]);i++){if(name==='*'||element.localName===name){at=element.attributes[a];v=at&&at.value;if(v&&v.search(BINDING_RX)<0){at.value=a==='style'?resolveCss(v,ownerDocument):resolve(v,ownerDocument);}}}}} function resolve(url,ownerDocument){if(url&&ABS_URL.test(url)){return url;} var resolver=getUrlResolver(ownerDocument);resolver.href=url;return resolver.href||url;} @@ -3914,10 +3673,9 @@ var key=this._boundListenerKey(eventName,methodName);bl[key]=handler;},_recallEventHandler:function(host,eventName,target,methodName){var hbl=host.__boundListeners;if(!hbl){return;} var bl=hbl.get(target);if(!bl){return;} var key=this._boundListenerKey(eventName,methodName);return bl[key];},_createEventHandler:function(node,eventName,methodName){var host=this;var handler=function(e){if(host[methodName]){host[methodName](e,e.detail);}else{host._warn(host._logf('_createEventHandler','listener method `'+methodName+'` not defined'));}};handler._listening=false;this._recordEventHandler(host,eventName,node,methodName,handler);return handler;},unlisten:function(node,eventName,methodName){var handler=this._recallEventHandler(this,eventName,node,methodName);if(handler){this._unlisten(node,eventName,handler);handler._listening=false;}},_listen:function(node,eventName,handler){node.addEventListener(eventName,handler);},_unlisten:function(node,eventName,handler){node.removeEventListener(eventName,handler);}});(function(){'use strict';var wrap=Polymer.DomApi.wrap;var HAS_NATIVE_TA=typeof document.head.style.touchAction==='string';var GESTURE_KEY='__polymerGestures';var HANDLED_OBJ='__polymerGesturesHandled';var TOUCH_ACTION='__polymerGesturesTouchAction';var TAP_DISTANCE=25;var TRACK_DISTANCE=5;var TRACK_LENGTH=2;var MOUSE_TIMEOUT=2500;var MOUSE_EVENTS=['mousedown','mousemove','mouseup','click'];var MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];var MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent('test',{buttons:1}).buttons===1;}catch(e){return false;}}();function isMouseEvent(name){return MOUSE_EVENTS.indexOf(name)>-1;} -var SUPPORTS_PASSIVE=false;(function(){try{var opts=Object.defineProperty({},'passive',{get:function(){SUPPORTS_PASSIVE=true;}});window.addEventListener('test',null,opts);window.removeEventListener('test',null,opts);}catch(e){}}());function PASSIVE_TOUCH(eventName){if(isMouseEvent(eventName)||eventName==='touchend'){return;} -if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&Polymer.Settings.passiveTouchGestures){return{passive:true};}} +var SUPPORTS_PASSIVE=false;(function(){try{var opts=Object.defineProperty({},'passive',{get:function(){SUPPORTS_PASSIVE=true;}});window.addEventListener('test',null,opts);window.removeEventListener('test',null,opts);}catch(e){}}());function PASSIVE_TOUCH(){if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&Polymer.Settings.passiveTouchGestures){return{passive:true};}} var IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);var mouseCanceller=function(mouseEvent){var sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return;} -mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==='click'){var path=Polymer.dom(mouseEvent).path;if(path){for(var i=0;i<path.length;i++){if(path[i]===POINTERSTATE.mouse.target){return;}}} +mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==='click'){var path=Polymer.dom(mouseEvent).path;for(var i=0;i<path.length;i++){if(path[i]===POINTERSTATE.mouse.target){return;}} mouseEvent.preventDefault();mouseEvent.stopPropagation();}};function setupTeardownMouseCanceller(setup){var events=IS_TOUCH_ONLY?['click']:MOUSE_EVENTS;for(var i=0,en;i<events.length;i++){en=events[i];if(setup){document.addEventListener(en,mouseCanceller,true);}else{document.removeEventListener(en,mouseCanceller,true);}}} function ignoreMouse(ev){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true);} var unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null;};POINTERSTATE.mouse.target=Polymer.dom(ev).rootTarget;POINTERSTATE.mouse.mouseIgnoreJob=Polymer.Debounce(POINTERSTATE.mouse.mouseIgnoreJob,unset,MOUSE_TIMEOUT);} @@ -3945,9 +3703,9 @@ if(prevent){ev.preventDefault();}else{Gestures.prevent('track');}}},add:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={};} for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&isMouseEvent(dep)&&dep!=='click'){continue;} gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0};} -if(gd._count===0){node.addEventListener(dep,this.handleNative,PASSIVE_TOUCH(dep));} +if(gd._count===0){var options=!isMouseEvent(dep)&&PASSIVE_TOUCH();node.addEventListener(dep,this.handleNative,options);} gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1;} -node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction);}},remove:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(gobj){for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){node.removeEventListener(dep,this.handleNative,PASSIVE_TOUCH(dep));}}}} +node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction);}},remove:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(gobj){for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){var options=!isMouseEvent(dep)&&PASSIVE_TOUCH();node.removeEventListener(dep,this.handleNative,options);}}}} node.removeEventListener(evType,handler);},register:function(recog){this.recognizers.push(recog);for(var i=0;i<recog.emits.length;i++){this.gestures[recog.emits[i]]=recog;}},findRecognizerByEvent:function(evName){for(var i=0,r;i<this.recognizers.length;i++){r=this.recognizers[i];for(var j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r;}}} return null;},setTouchAction:function(node,value){if(HAS_NATIVE_TA){node.style.touchAction=value;} node[TOUCH_ACTION]=value;},fire:function(target,type,detail){var ev=Polymer.Base.fire(type,detail,{node:target,bubbles:true,cancelable:true});if(ev.defaultPrevented){var preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault();}}},prevent:function(evName){var recognizer=this.findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true;}},resetMouseCanceller:function(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.complete();}}};Gestures.register({name:'downup',deps:['mousedown','touchstart','touchend'],flow:{start:['mousedown','touchstart'],end:['mouseup','touchend']},emits:['down','up'],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info);},mousedown:function(e){if(!hasLeftMouseButton(e)){return;} @@ -4039,7 +3797,7 @@ return'\\'+code;});},stringify:function(node,preserveProperties,text){text=text||'';var cssText='';if(node.cssText||node.rules){var r$=node.rules;if(r$&&!this._hasMixinRules(r$)){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){cssText=this.stringify(r,preserveProperties,cssText);}}else{cssText=preserveProperties?node.cssText:this.removeCustomProps(node.cssText);cssText=cssText.trim();if(cssText){cssText=' '+cssText+'\n';}}} if(cssText){if(node.selector){text+=node.selector+' '+this.OPEN_BRACE+'\n';} text+=cssText;if(node.selector){text+=this.CLOSE_BRACE+'\n\n';}} -return text;},_hasMixinRules:function(rules){return rules[0].selector.indexOf(this.VAR_START)===0;},removeCustomProps:function(cssText){cssText=this.removeCustomPropAssignment(cssText);return this.removeCustomPropApply(cssText);},removeCustomPropAssignment:function(cssText){return cssText.replace(this._rx.customProp,'').replace(this._rx.mixinProp,'');},removeCustomPropApply:function(cssText){return cssText.replace(this._rx.mixinApply,'').replace(this._rx.varApply,'');},types:{STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1000},OPEN_BRACE:'{',CLOSE_BRACE:'}',_rx:{comments:/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START:'--',MEDIA_START:'@media',AT_START:'@'};}();Polymer.StyleUtil=function(){var settings=Polymer.Settings;return{unscopedStyleImports:new WeakMap(),SHADY_UNSCOPED_ATTR:'shady-unscoped',NATIVE_VARIABLES:Polymer.Settings.useNativeCSSProperties,MODULE_STYLES_SELECTOR:'style, link[rel=import][type~=css], template',INCLUDE_ATTR:'include',toCssText:function(rules,callback){if(typeof rules==='string'){rules=this.parser.parse(rules);} +return text;},_hasMixinRules:function(rules){return rules[0].selector.indexOf(this.VAR_START)===0;},removeCustomProps:function(cssText){cssText=this.removeCustomPropAssignment(cssText);return this.removeCustomPropApply(cssText);},removeCustomPropAssignment:function(cssText){return cssText.replace(this._rx.customProp,'').replace(this._rx.mixinProp,'');},removeCustomPropApply:function(cssText){return cssText.replace(this._rx.mixinApply,'').replace(this._rx.varApply,'');},types:{STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1000},OPEN_BRACE:'{',CLOSE_BRACE:'}',_rx:{comments:/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START:'--',MEDIA_START:'@media',AT_START:'@'};}();Polymer.StyleUtil=function(){var settings=Polymer.Settings;return{NATIVE_VARIABLES:Polymer.Settings.useNativeCSSProperties,MODULE_STYLES_SELECTOR:'style, link[rel=import][type~=css], template',INCLUDE_ATTR:'include',toCssText:function(rules,callback){if(typeof rules==='string'){rules=this.parser.parse(rules);} if(callback){this.forEachRule(rules,callback);} return this.parser.stringify(rules,this.NATIVE_VARIABLES);},forRulesInStyles:function(styles,styleRuleCallback,keyframesRuleCallback){if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.forEachRuleInStyle(s,styleRuleCallback,keyframesRuleCallback);}}},forActiveRulesInStyles:function(styles,styleRuleCallback,keyframesRuleCallback){if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.forEachRuleInStyle(s,styleRuleCallback,keyframesRuleCallback,true);}}},rulesForStyle:function(style){if(!style.__cssRules&&style.textContent){style.__cssRules=this.parser.parse(style.textContent);} return style.__cssRules;},isKeyframesSelector:function(rule){return rule.parent&&rule.parent.type===this.ruleTypes.KEYFRAMES_RULE;},forEachRuleInStyle:function(style,styleRuleCallback,keyframesRuleCallback,onlyActiveRules){var rules=this.rulesForStyle(style);var styleCallback,keyframeCallback;if(styleRuleCallback){styleCallback=function(rule){styleRuleCallback(rule,style);};} @@ -4048,11 +3806,11 @@ var skipRules=false;if(onlyActiveRules){if(node.type===this.ruleTypes.MEDIA_RULE){var matchMedia=node.selector.match(this.rx.MEDIA_MATCH);if(matchMedia){if(!window.matchMedia(matchMedia[1]).matches){skipRules=true;}}}} if(node.type===this.ruleTypes.STYLE_RULE){styleRuleCallback(node);}else if(keyframesRuleCallback&&node.type===this.ruleTypes.KEYFRAMES_RULE){keyframesRuleCallback(node);}else if(node.type===this.ruleTypes.MIXIN_RULE){skipRules=true;} var r$=node.rules;if(r$&&!skipRules){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){this.forEachRule(r,styleRuleCallback,keyframesRuleCallback,onlyActiveRules);}}},applyCss:function(cssText,moniker,target,contextNode){var style=this.createScopeStyle(cssText,moniker);return this.applyStyle(style,target,contextNode);},applyStyle:function(style,target,contextNode){target=target||document.head;var after=contextNode&&contextNode.nextSibling||target.firstChild;this.__lastHeadApplyNode=style;return target.insertBefore(style,after);},createScopeStyle:function(cssText,moniker){var style=document.createElement('style');if(moniker){style.setAttribute('scope',moniker);} -style.textContent=cssText;return style;},__lastHeadApplyNode:null,applyStylePlaceHolder:function(moniker){var placeHolder=document.createComment(' Shady DOM styles for '+moniker+' ');var after=this.__lastHeadApplyNode?this.__lastHeadApplyNode.nextSibling:null;var scope=document.head;scope.insertBefore(placeHolder,after||scope.firstChild);this.__lastHeadApplyNode=placeHolder;return placeHolder;},cssFromModules:function(moduleIds,warnIfNotFound){var modules=moduleIds.trim().split(/\s+/);var cssText='';for(var i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i],warnIfNotFound);} +style.textContent=cssText;return style;},__lastHeadApplyNode:null,applyStylePlaceHolder:function(moniker){var placeHolder=document.createComment(' Shady DOM styles for '+moniker+' ');var after=this.__lastHeadApplyNode?this.__lastHeadApplyNode.nextSibling:null;var scope=document.head;scope.insertBefore(placeHolder,after||scope.firstChild);this.__lastHeadApplyNode=placeHolder;return placeHolder;},cssFromModules:function(moduleIds,warnIfNotFound){var modules=moduleIds.trim().split(' ');var cssText='';for(var i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i],warnIfNotFound);} return cssText;},cssFromModule:function(moduleId,warnIfNotFound){var m=Polymer.DomModule.import(moduleId);if(m&&!m._cssText){m._cssText=this.cssFromElement(m);} if(!m&&warnIfNotFound){console.warn('Could not find style data in module named',moduleId);} return m&&m._cssText||'';},cssFromElement:function(element){var cssText='';var content=element.content||element;var e$=Polymer.TreeApi.arrayCopy(content.querySelectorAll(this.MODULE_STYLES_SELECTOR));for(var i=0,e;i<e$.length;i++){e=e$[i];if(e.localName==='template'){if(!e.hasAttribute('preserve-content')){cssText+=this.cssFromElement(e);}}else{if(e.localName==='style'){var include=e.getAttribute(this.INCLUDE_ATTR);if(include){cssText+=this.cssFromModules(include,true);} -e=e.__appliedElement||e;e.parentNode.removeChild(e);var css=this.resolveCss(e.textContent,element.ownerDocument);if(!settings.useNativeShadow&&e.hasAttribute(this.SHADY_UNSCOPED_ATTR)){e.textContent=css;document.head.insertBefore(e,document.head.firstChild);}else{cssText+=css;}}else if(e.import&&e.import.body){var importCss=this.resolveCss(e.import.body.textContent,e.import);if(!settings.useNativeShadow&&e.hasAttribute(this.SHADY_UNSCOPED_ATTR)){if(!this.unscopedStyleImports.has(e.import)){this.unscopedStyleImports.set(e.import,true);var importStyle=document.createElement('style');importStyle.setAttribute(this.SHADY_UNSCOPED_ATTR,'');importStyle.textContent=importCss;document.head.insertBefore(importStyle,document.head.firstChild);}}else{cssText+=importCss;}}}} +e=e.__appliedElement||e;e.parentNode.removeChild(e);cssText+=this.resolveCss(e.textContent,element.ownerDocument);}else if(e.import&&e.import.body){cssText+=this.resolveCss(e.import.body.textContent,e.import);}}} return cssText;},styleIncludesToTemplate:function(targetTemplate){var styles=targetTemplate.content.querySelectorAll('style[include]');for(var i=0,s;i<styles.length;i++){s=styles[i];s.parentNode.insertBefore(this._includesToFragment(s.getAttribute('include')),s);}},_includesToFragment:function(styleIncludes){var includeArray=styleIncludes.trim().split(' ');var frag=document.createDocumentFragment();for(var i=0;i<includeArray.length;i++){var t=Polymer.DomModule.import(includeArray[i],'template');if(t){this._addStylesToFragment(frag,t.content);}} return frag;},_addStylesToFragment:function(frag,source){var s$=source.querySelectorAll('style');for(var i=0,s;i<s$.length;i++){s=s$[i];var include=s.getAttribute('include');if(include){frag.appendChild(this._includesToFragment(include));} if(s.textContent){frag.appendChild(s.cloneNode(true));}}},isTargetedBuild:function(buildType){return settings.useNativeShadow?buildType==='shadow':buildType==='shady';},cssBuildTypeForModule:function(module){var dm=Polymer.DomModule.import(module);if(dm){return this.getCssBuildType(dm);}},getCssBuildType:function(element){return element.getAttribute('css-build');},_findMatchingParen:function(text,start){var level=0;for(var i=start,l=text.length;i<l;i++){switch(text[i]){case'(':level++;break;case')':if(--level===0){return i;} @@ -4060,25 +3818,16 @@ return-1;},processVariableAndFallback:function(str,callback){var start=str.indexOf('var(');if(start===-1){return callback(str,'','','');} var end=this._findMatchingParen(str,start+3);var inner=str.substring(start+4,end);var prefix=str.substring(0,start);var suffix=this.processVariableAndFallback(str.substring(end+1),callback);var comma=inner.indexOf(',');if(comma===-1){return callback(prefix,inner.trim(),'',suffix);} var value=inner.substring(0,comma).trim();var fallback=inner.substring(comma+1).trim();return callback(prefix,value,fallback,suffix);},rx:{VAR_ASSIGN:/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:([^;{]*)|{([^}]*)})(?:(?=[;\s}])|$)/gi,MIXIN_MATCH:/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,VAR_CONSUMED:/(--[\w-]+)\s*([:,;)]|$)/gi,ANIMATION_MATCH:/(animation\s*:)|(animation-name\s*:)/,MEDIA_MATCH:/@media[^(]*(\([^)]*\))/,IS_VAR:/^--/,BRACKETED:/\{[^}]*\}/g,HOST_PREFIX:'(?:^|[^.#[:])',HOST_SUFFIX:'($|[.:[\\s>+~])'},resolveCss:Polymer.ResolveUrl.resolveCss,parser:Polymer.CssParse,ruleTypes:Polymer.CssParse.types};}();Polymer.StyleTransformer=function(){var styleUtil=Polymer.StyleUtil;var settings=Polymer.Settings;var api={dom:function(node,scope,useAttr,shouldRemoveScope){this._transformDom(node,scope||'',useAttr,shouldRemoveScope);},_transformDom:function(node,selector,useAttr,shouldRemoveScope){if(node.setAttribute){this.element(node,selector,useAttr,shouldRemoveScope);} -var c$=Polymer.dom(node).childNodes;for(var i=0;i<c$.length;i++){this._transformDom(c$[i],selector,useAttr,shouldRemoveScope);}},element:function(element,scope,useAttr,shouldRemoveScope){if(useAttr){if(shouldRemoveScope){element.removeAttribute(SCOPE_NAME);}else{element.setAttribute(SCOPE_NAME,scope);}}else{if(scope){if(element.classList){if(shouldRemoveScope){element.classList.remove(SCOPE_NAME);element.classList.remove(scope);}else{element.classList.add(SCOPE_NAME);element.classList.add(scope);}}else if(element.getAttribute){var c=element.getAttribute(CLASS);if(shouldRemoveScope){if(c){element.setAttribute(CLASS,c.replace(SCOPE_NAME,'').replace(scope,''));}}else{element.setAttribute(CLASS,(c?c+' ':'')+SCOPE_NAME+' '+scope);}}}}},elementStyles:function(element,callback){var styles=element._styles;var cssText='';var cssBuildType=element.__cssBuild;var passthrough=settings.useNativeShadow||cssBuildType==='shady';var cb;if(passthrough){var self=this;cb=function(rule){rule.selector=self._slottedToContent(rule.selector);rule.selector=rule.selector.replace(ROOT,':host > *');rule.selector=self._dirShadowTransform(rule.selector);if(callback){callback(rule);}};} +var c$=Polymer.dom(node).childNodes;for(var i=0;i<c$.length;i++){this._transformDom(c$[i],selector,useAttr,shouldRemoveScope);}},element:function(element,scope,useAttr,shouldRemoveScope){if(useAttr){if(shouldRemoveScope){element.removeAttribute(SCOPE_NAME);}else{element.setAttribute(SCOPE_NAME,scope);}}else{if(scope){if(element.classList){if(shouldRemoveScope){element.classList.remove(SCOPE_NAME);element.classList.remove(scope);}else{element.classList.add(SCOPE_NAME);element.classList.add(scope);}}else if(element.getAttribute){var c=element.getAttribute(CLASS);if(shouldRemoveScope){if(c){element.setAttribute(CLASS,c.replace(SCOPE_NAME,'').replace(scope,''));}}else{element.setAttribute(CLASS,(c?c+' ':'')+SCOPE_NAME+' '+scope);}}}}},elementStyles:function(element,callback){var styles=element._styles;var cssText='';var cssBuildType=element.__cssBuild;var passthrough=settings.useNativeShadow||cssBuildType==='shady';var cb;if(passthrough){var self=this;cb=function(rule){rule.selector=self._slottedToContent(rule.selector);rule.selector=rule.selector.replace(ROOT,':host > *');if(callback){callback(rule);}};} for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){var rules=styleUtil.rulesForStyle(s);cssText+=passthrough?styleUtil.toCssText(rules,cb):this.css(rules,element.is,element.extends,callback,element._scopeCssViaAttr)+'\n\n';} return cssText.trim();},css:function(rules,scope,ext,callback,useAttr){var hostScope=this._calcHostScope(scope,ext);scope=this._calcElementScope(scope,useAttr);var self=this;return styleUtil.toCssText(rules,function(rule){if(!rule.isScoped){self.rule(rule,scope,hostScope);rule.isScoped=true;} -if(callback){callback(rule,scope,hostScope);}});},_calcElementScope:function(scope,useAttr){if(scope){return useAttr?CSS_ATTR_PREFIX+scope+CSS_ATTR_SUFFIX:CSS_CLASS_PREFIX+scope;}else{return'';}},_calcHostScope:function(scope,ext){return ext?'[is='+scope+']':scope;},rule:function(rule,scope,hostScope){this._transformRule(rule,this._transformComplexSelector,scope,hostScope);},_transformRule:function(rule,transformer,scope,hostScope){rule.selector=rule.transformedSelector=this._transformRuleCss(rule,transformer,scope,hostScope);},_splitSelectorList:function(selector){var parts=[];var part='';for(var i=0;i>=0&&i<selector.length;i++){if(selector[i]==='('){var end=styleUtil._findMatchingParen(selector,i);part+=selector.slice(i,end+1);i=end;}else if(selector[i]===COMPLEX_SELECTOR_SEP){parts.push(part);part='';}else{part+=selector[i];}} -if(part){parts.push(part);} -if(parts.length===0){parts.push(selector);} -return parts;},_transformRuleCss:function(rule,transformer,scope,hostScope){var p$=this._splitSelectorList(rule.selector);if(!styleUtil.isKeyframesSelector(rule)){for(var i=0,l=p$.length,p;i<l&&(p=p$[i]);i++){p$[i]=transformer.call(this,p,scope,hostScope);}} -return p$.join(COMPLEX_SELECTOR_SEP);},_ensureScopedDir:function(s){var m=s.match(DIR_PAREN);if(m&&m[1]===''&&m[0].length===s.length){s='*'+s;} -return s;},_additionalDirSelectors:function(dir,after,prefix){if(!dir||!after){return'';} -prefix=prefix||'';return COMPLEX_SELECTOR_SEP+prefix+' '+dir+' '+after;},_transformComplexSelector:function(selector,scope,hostScope){var stop=false;var hostContext=false;var dir=false;var self=this;selector=selector.trim();selector=this._slottedToContent(selector);selector=selector.replace(ROOT,':host > *');selector=selector.replace(CONTENT_START,HOST+' $1');selector=this._ensureScopedDir(selector);selector=selector.replace(SIMPLE_SELECTOR_SEP,function(m,c,s){if(!stop){var info=self._transformCompoundSelector(s,c,scope,hostScope);stop=stop||info.stop;hostContext=hostContext||info.hostContext;dir=dir||info.dir;c=info.combinator;s=info.value;}else{s=s.replace(SCOPE_JUMP,' ');} -return c+s;});if(hostContext){selector=selector.replace(HOST_CONTEXT_PAREN,function(m,pre,paren,post){var replacement=pre+paren+' '+hostScope+post+COMPLEX_SELECTOR_SEP+' '+pre+hostScope+paren+post;if(dir){replacement+=self._additionalDirSelectors(paren,post,hostScope);} -return replacement;});} -return selector;},_transformDir:function(s){s=s.replace(HOST_DIR,HOST_DIR_REPLACE);s=s.replace(DIR_PAREN,DIR_REPLACE);return s;},_transformCompoundSelector:function(selector,combinator,scope,hostScope){var jumpIndex=selector.search(SCOPE_JUMP);var hostContext=false;var dir=false;if(selector.match(DIR_PAREN)){selector=this._transformDir(selector);dir=true;} -if(selector.indexOf(HOST_CONTEXT)>=0){hostContext=true;}else if(selector.indexOf(HOST)>=0){selector=this._transformHostSelector(selector,hostScope);}else if(jumpIndex!==0){selector=scope?this._transformSimpleSelector(selector,scope):selector;} +if(callback){callback(rule,scope,hostScope);}});},_calcElementScope:function(scope,useAttr){if(scope){return useAttr?CSS_ATTR_PREFIX+scope+CSS_ATTR_SUFFIX:CSS_CLASS_PREFIX+scope;}else{return'';}},_calcHostScope:function(scope,ext){return ext?'[is='+scope+']':scope;},rule:function(rule,scope,hostScope){this._transformRule(rule,this._transformComplexSelector,scope,hostScope);},_transformRule:function(rule,transformer,scope,hostScope){rule.selector=rule.transformedSelector=this._transformRuleCss(rule,transformer,scope,hostScope);},_transformRuleCss:function(rule,transformer,scope,hostScope){var p$=rule.selector.split(COMPLEX_SELECTOR_SEP);if(!styleUtil.isKeyframesSelector(rule)){for(var i=0,l=p$.length,p;i<l&&(p=p$[i]);i++){p$[i]=transformer.call(this,p,scope,hostScope);}} +return p$.join(COMPLEX_SELECTOR_SEP);},_transformComplexSelector:function(selector,scope,hostScope){var stop=false;var hostContext=false;var self=this;selector=selector.trim();selector=this._slottedToContent(selector);selector=selector.replace(ROOT,':host > *');selector=selector.replace(CONTENT_START,HOST+' $1');selector=selector.replace(SIMPLE_SELECTOR_SEP,function(m,c,s){if(!stop){var info=self._transformCompoundSelector(s,c,scope,hostScope);stop=stop||info.stop;hostContext=hostContext||info.hostContext;c=info.combinator;s=info.value;}else{s=s.replace(SCOPE_JUMP,' ');} +return c+s;});if(hostContext){selector=selector.replace(HOST_CONTEXT_PAREN,function(m,pre,paren,post){return pre+paren+' '+hostScope+post+COMPLEX_SELECTOR_SEP+' '+pre+hostScope+paren+post;});} +return selector;},_transformCompoundSelector:function(selector,combinator,scope,hostScope){var jumpIndex=selector.search(SCOPE_JUMP);var hostContext=false;if(selector.indexOf(HOST_CONTEXT)>=0){hostContext=true;}else if(selector.indexOf(HOST)>=0){selector=this._transformHostSelector(selector,hostScope);}else if(jumpIndex!==0){selector=scope?this._transformSimpleSelector(selector,scope):selector;} if(selector.indexOf(CONTENT)>=0){combinator='';} var stop;if(jumpIndex>=0){selector=selector.replace(SCOPE_JUMP,' ');stop=true;} -return{value:selector,combinator:combinator,stop:stop,hostContext:hostContext,dir:dir};},_transformSimpleSelector:function(selector,scope){var p$=selector.split(PSEUDO_PREFIX);p$[0]+=scope;return p$.join(PSEUDO_PREFIX);},_transformHostSelector:function(selector,hostScope){var m=selector.match(HOST_PAREN);var paren=m&&m[2].trim()||'';if(paren){if(!paren[0].match(SIMPLE_SELECTOR_PREFIX)){var typeSelector=paren.split(SIMPLE_SELECTOR_PREFIX)[0];if(typeSelector===hostScope){return paren;}else{return SELECTOR_NO_MATCH;}}else{return selector.replace(HOST_PAREN,function(m,host,paren){return hostScope+paren;});}}else{return selector.replace(HOST,hostScope);}},documentRule:function(rule){rule.selector=rule.parsedSelector;this.normalizeRootSelector(rule);if(!settings.useNativeShadow){this._transformRule(rule,this._transformDocumentSelector);}},normalizeRootSelector:function(rule){rule.selector=rule.selector.replace(ROOT,'html');var parts=this._splitSelectorList(rule.selector);parts=parts.filter(function(part){return!part.match(HOST_OR_HOST_GT_STAR);});rule.selector=parts.join(COMPLEX_SELECTOR_SEP);},_transformDocumentSelector:function(selector){return this._transformComplexSelector(selector,SCOPE_DOC_SELECTOR);},_slottedToContent:function(cssText){return cssText.replace(SLOTTED_PAREN,CONTENT+'> $1');},_dirShadowTransform:function(selector){if(!selector.match(/:dir\(/)){return selector;} -return this._splitSelectorList(selector).map(function(s){s=this._ensureScopedDir(s);s=this._transformDir(s);var m=HOST_CONTEXT_PAREN.exec(s);if(m){s+=this._additionalDirSelectors(m[2],m[3],'');} -return s;},this).join(COMPLEX_SELECTOR_SEP);},SCOPE_NAME:'style-scope'};var SCOPE_NAME=api.SCOPE_NAME;var SCOPE_DOC_SELECTOR=':not(['+SCOPE_NAME+'])'+':not(.'+SCOPE_NAME+')';var COMPLEX_SELECTOR_SEP=',';var SIMPLE_SELECTOR_SEP=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=\[])+)/g;var SIMPLE_SELECTOR_PREFIX=/[[.:#*]/;var HOST=':host';var ROOT=':root';var HOST_PAREN=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/;var HOST_CONTEXT=':host-context';var HOST_CONTEXT_PAREN=/(.*)(?::host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;var CONTENT='::content';var SCOPE_JUMP=/::content|::shadow|\/deep\//;var CSS_CLASS_PREFIX='.';var CSS_ATTR_PREFIX='['+SCOPE_NAME+'~=';var CSS_ATTR_SUFFIX=']';var PSEUDO_PREFIX=':';var CLASS='class';var CONTENT_START=new RegExp('^('+CONTENT+')');var SELECTOR_NO_MATCH='should_not_match';var SLOTTED_PAREN=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;var HOST_OR_HOST_GT_STAR=/:host(?:\s*>\s*\*)?/;var DIR_PAREN=/(.*):dir\((ltr|rtl)\)/;var DIR_REPLACE=':host-context([dir="$2"]) $1';var HOST_DIR=/:host\(:dir\((rtl|ltr)\)\)/g;var HOST_DIR_REPLACE=':host-context([dir="$1"])';return api;}();Polymer.StyleExtends=function(){var styleUtil=Polymer.StyleUtil;return{hasExtends:function(cssText){return Boolean(cssText.match(this.rx.EXTEND));},transform:function(style){var rules=styleUtil.rulesForStyle(style);var self=this;styleUtil.forEachRule(rules,function(rule){self._mapRuleOntoParent(rule);if(rule.parent){var m;while(m=self.rx.EXTEND.exec(rule.cssText)){var extend=m[1];var extendor=self._findExtendor(extend,rule);if(extendor){self._extendRule(rule,extendor);}}} +return{value:selector,combinator:combinator,stop:stop,hostContext:hostContext};},_transformSimpleSelector:function(selector,scope){var p$=selector.split(PSEUDO_PREFIX);p$[0]+=scope;return p$.join(PSEUDO_PREFIX);},_transformHostSelector:function(selector,hostScope){var m=selector.match(HOST_PAREN);var paren=m&&m[2].trim()||'';if(paren){if(!paren[0].match(SIMPLE_SELECTOR_PREFIX)){var typeSelector=paren.split(SIMPLE_SELECTOR_PREFIX)[0];if(typeSelector===hostScope){return paren;}else{return SELECTOR_NO_MATCH;}}else{return selector.replace(HOST_PAREN,function(m,host,paren){return hostScope+paren;});}}else{return selector.replace(HOST,hostScope);}},documentRule:function(rule){rule.selector=rule.parsedSelector;this.normalizeRootSelector(rule);if(!settings.useNativeShadow){this._transformRule(rule,this._transformDocumentSelector);}},normalizeRootSelector:function(rule){rule.selector=rule.selector.replace(ROOT,'html');var parts=rule.selector.split(COMPLEX_SELECTOR_SEP);parts=parts.filter(function(part){return!part.match(HOST_OR_HOST_GT_STAR);});rule.selector=parts.join(COMPLEX_SELECTOR_SEP);},_transformDocumentSelector:function(selector){return selector.match(SCOPE_JUMP)?this._transformComplexSelector(selector,SCOPE_DOC_SELECTOR):this._transformSimpleSelector(selector.trim(),SCOPE_DOC_SELECTOR);},_slottedToContent:function(cssText){return cssText.replace(SLOTTED_PAREN,CONTENT+'> $1');},SCOPE_NAME:'style-scope'};var SCOPE_NAME=api.SCOPE_NAME;var SCOPE_DOC_SELECTOR=':not(['+SCOPE_NAME+'])'+':not(.'+SCOPE_NAME+')';var COMPLEX_SELECTOR_SEP=',';var SIMPLE_SELECTOR_SEP=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=\[])+)/g;var SIMPLE_SELECTOR_PREFIX=/[[.:#*]/;var HOST=':host';var ROOT=':root';var HOST_PAREN=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/;var HOST_CONTEXT=':host-context';var HOST_CONTEXT_PAREN=/(.*)(?::host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;var CONTENT='::content';var SCOPE_JUMP=/::content|::shadow|\/deep\//;var CSS_CLASS_PREFIX='.';var CSS_ATTR_PREFIX='['+SCOPE_NAME+'~=';var CSS_ATTR_SUFFIX=']';var PSEUDO_PREFIX=':';var CLASS='class';var CONTENT_START=new RegExp('^('+CONTENT+')');var SELECTOR_NO_MATCH='should_not_match';var SLOTTED_PAREN=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;var HOST_OR_HOST_GT_STAR=/:host(?:\s*>\s*\*)?/;return api;}();Polymer.StyleExtends=function(){var styleUtil=Polymer.StyleUtil;return{hasExtends:function(cssText){return Boolean(cssText.match(this.rx.EXTEND));},transform:function(style){var rules=styleUtil.rulesForStyle(style);var self=this;styleUtil.forEachRule(rules,function(rule){self._mapRuleOntoParent(rule);if(rule.parent){var m;while(m=self.rx.EXTEND.exec(rule.cssText)){var extend=m[1];var extendor=self._findExtendor(extend,rule);if(extendor){self._extendRule(rule,extendor);}}} rule.cssText=rule.cssText.replace(self.rx.EXTEND,'');});return styleUtil.toCssText(rules,function(rule){if(rule.selector.match(self.rx.STRIP)){rule.cssText='';}},true);},_mapRuleOntoParent:function(rule){if(rule.parent){var map=rule.parent.map||(rule.parent.map={});var parts=rule.selector.split(',');for(var i=0,p;i<parts.length;i++){p=parts[i];map[p.trim()]=rule;} return map;}},_findExtendor:function(extend,rule){return rule.parent&&rule.parent.map&&rule.parent.map[extend]||this._findExtendor(extend,rule.parent);},_extendRule:function(target,source){if(target.parent!==source.parent){this._cloneAndAddRuleToParent(source,target.parent);} target.extends=target.extends||[];target.extends.push(source);source.selector=source.selector.replace(this.rx.STRIP,'');source.selector=(source.selector&&source.selector+',\n')+target.selector;if(source.extends){source.extends.forEach(function(e){this._extendRule(target,e);},this);}},_cloneAndAddRuleToParent:function(rule,parent){rule=Object.create(rule);rule.parent=parent;if(rule.extends){rule.extends=rule.extends.slice();} @@ -4144,7 +3893,7 @@ selectorToMatch=rule.transformedSelector||rule.parsedSelector;} if(isRoot&&hostScope==='html'){selectorToMatch=rule.transformedSelector||rule.parsedSelector;} callback({selector:selectorToMatch,isHost:isHost,isRoot:isRoot});},hostAndRootPropertiesForScope:function(scope){var hostProps={},rootProps={},self=this;styleUtil.forActiveRulesInStyles(scope._styles,function(rule,style){self.whenHostOrRootRule(scope,rule,style,function(info){var element=scope._element||scope;if(matchesSelector.call(element,info.selector)){if(info.isHost){self.collectProperties(rule,hostProps);}else{self.collectProperties(rule,rootProps);}}});});return{rootProps:rootProps,hostProps:hostProps};},transformStyles:function(element,properties,scopeSelector){var self=this;var hostSelector=styleTransformer._calcHostScope(element.is,element.extends);var rxHostSelector=element.extends?'\\'+hostSelector.slice(0,-1)+'\\]':hostSelector;var hostRx=new RegExp(this.rx.HOST_PREFIX+rxHostSelector+this.rx.HOST_SUFFIX);var keyframeTransforms=this._elementKeyframeTransforms(element,scopeSelector);return styleTransformer.elementStyles(element,function(rule){self.applyProperties(rule,properties);if(!settings.useNativeShadow&&!Polymer.StyleUtil.isKeyframesSelector(rule)&&rule.cssText){self.applyKeyframeTransforms(rule,keyframeTransforms);self._scopeSelector(rule,hostRx,hostSelector,element._scopeCssViaAttr,scopeSelector);}});},_elementKeyframeTransforms:function(element,scopeSelector){var keyframesRules=element._styles._keyframes;var keyframeTransforms={};if(!settings.useNativeShadow&&keyframesRules){for(var i=0,keyframesRule=keyframesRules[i];i<keyframesRules.length;keyframesRule=keyframesRules[++i]){this._scopeKeyframes(keyframesRule,scopeSelector);keyframeTransforms[keyframesRule.keyframesName]=this._keyframesRuleTransformer(keyframesRule);}} -return keyframeTransforms;},_keyframesRuleTransformer:function(keyframesRule){return function(cssText){return cssText.replace(keyframesRule.keyframesNameRx,keyframesRule.transformedKeyframesName);};},_scopeKeyframes:function(rule,scopeId){rule.keyframesNameRx=new RegExp('\\b'+rule.keyframesName+'(?!\\B|-)','g');rule.transformedKeyframesName=rule.keyframesName+'-'+scopeId;rule.transformedSelector=rule.transformedSelector||rule.selector;rule.selector=rule.transformedSelector.replace(rule.keyframesName,rule.transformedKeyframesName);},_hasDirOrHostContext:function(parsedSelector){return/:host-context|:dir/.test(parsedSelector);},_scopeSelector:function(rule,hostRx,hostSelector,viaAttr,scopeId){rule.transformedSelector=rule.transformedSelector||rule.selector;var selector=rule.transformedSelector;var scope=styleTransformer._calcElementScope(scopeId,viaAttr);var hostScope=styleTransformer._calcElementScope(hostSelector,viaAttr);var parts=selector.split(',');var isDirOrHostContextSelector=this._hasDirOrHostContext(rule.parsedSelector);for(var i=0,l=parts.length,p;i<l&&(p=parts[i]);i++){parts[i]=p.match(hostRx)?p.replace(hostSelector,scope):isDirOrHostContextSelector?p.replace(hostScope,scope+' '+hostScope):scope+' '+p;} +return keyframeTransforms;},_keyframesRuleTransformer:function(keyframesRule){return function(cssText){return cssText.replace(keyframesRule.keyframesNameRx,keyframesRule.transformedKeyframesName);};},_scopeKeyframes:function(rule,scopeId){rule.keyframesNameRx=new RegExp(rule.keyframesName,'g');rule.transformedKeyframesName=rule.keyframesName+'-'+scopeId;rule.transformedSelector=rule.transformedSelector||rule.selector;rule.selector=rule.transformedSelector.replace(rule.keyframesName,rule.transformedKeyframesName);},_scopeSelector:function(rule,hostRx,hostSelector,viaAttr,scopeId){rule.transformedSelector=rule.transformedSelector||rule.selector;var selector=rule.transformedSelector;var scope=viaAttr?'['+styleTransformer.SCOPE_NAME+'~='+scopeId+']':'.'+scopeId;var parts=selector.split(',');for(var i=0,l=parts.length,p;i<l&&(p=parts[i]);i++){parts[i]=p.match(hostRx)?p.replace(hostSelector,scope):scope+' '+p;} rule.selector=parts.join(',');},applyElementScopeSelector:function(element,selector,old,viaAttr){var c=viaAttr?element.getAttribute(styleTransformer.SCOPE_NAME):element.getAttribute('class')||'';var v=old?c.replace(old,selector):(c?c+' ':'')+this.XSCOPE_NAME+' '+selector;if(c!==v){if(viaAttr){element.setAttribute(styleTransformer.SCOPE_NAME,v);}else{element.setAttribute('class',v);}}},applyElementStyle:function(element,properties,selector,style){var cssText=style?style.textContent||'':this.transformStyles(element,properties,selector);var s=element._customStyle;if(s&&!settings.useNativeShadow&&s!==style){s._useCount--;if(s._useCount<=0&&s.parentNode){s.parentNode.removeChild(s);}} if(settings.useNativeShadow){if(element._customStyle){element._customStyle.textContent=cssText;style=element._customStyle;}else if(cssText){style=styleUtil.applyCss(cssText,selector,element.root,element._scopeStyle);}}else{if(!style){if(cssText){style=styleUtil.applyCss(cssText,selector,null,element._scopeStyle);}}else if(!style.parentNode){if(IS_IE&&cssText.indexOf('@media')>-1){style.textContent=cssText;} styleUtil.applyStyle(style,null,element._scopeStyle);}} @@ -4189,7 +3938,7 @@ var archetype=Object.create(Polymer.Base);this._customPrepAnnotations(archetype,template);this._prepParentProperties(archetype,template);archetype._prepEffects();this._customPrepEffects(archetype);archetype._prepBehaviors();archetype._prepPropertyInfo();archetype._prepBindings();archetype._notifyPathUp=this._notifyPathUpImpl;archetype._scopeElementClass=this._scopeElementClassImpl;archetype.listen=this._listenImpl;archetype._showHideChildren=this._showHideChildrenImpl;archetype.__setPropertyOrig=this.__setProperty;archetype.__setProperty=this.__setPropertyImpl;var _constructor=this._constructorImpl;var ctor=function TemplateInstance(model,host){_constructor.call(this,model,host);};ctor.prototype=archetype;archetype.constructor=ctor;template._content._ctor=ctor;this.ctor=ctor;},_getRootDataHost:function(){return this.dataHost&&this.dataHost._rootDataHost||this.dataHost;},_showHideChildrenImpl:function(hide){var c=this._children;for(var i=0;i<c.length;i++){var n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent='';}else{n.textContent=n.__polymerTextContent__;}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display='none';}else{n.style.display=n.__polymerDisplay__;}}} n.__hideTemplateChildren__=hide;}},__setPropertyImpl:function(property,value,fromAbove,node){if(node&&node.__hideTemplateChildren__&&property=='textContent'){property='__polymerTextContent__';} this.__setPropertyOrig(property,value,fromAbove,node);},_debounceTemplate:function(fn){Polymer.dom.addDebouncer(this.debounce('_debounceTemplate',fn));},_flushTemplates:function(){Polymer.dom.flush();},_customPrepEffects:function(archetype){var parentProps=archetype._parentProps;for(var prop in parentProps){archetype._addPropertyEffect(prop,'function',this._createHostPropEffector(prop));} -for(prop in this._instanceProps){archetype._addPropertyEffect(prop,'function',this._createInstancePropEffector(prop));}},_customPrepAnnotations:function(archetype,template){var t=archetype._template=document.createElement('template');var c=t._content=template._content;if(!c._notes){var rootDataHost=archetype._rootDataHost;if(rootDataHost){Polymer.Annotations.prepElement=function(){rootDataHost._prepElement();};} +for(prop in this._instanceProps){archetype._addPropertyEffect(prop,'function',this._createInstancePropEffector(prop));}},_customPrepAnnotations:function(archetype,template){archetype._template=template;var c=template._content;if(!c._notes){var rootDataHost=archetype._rootDataHost;if(rootDataHost){Polymer.Annotations.prepElement=function(){rootDataHost._prepElement();};} c._notes=Polymer.Annotations.parseAnnotations(template);Polymer.Annotations.prepElement=null;this._processAnnotations(c._notes);} archetype._notes=c._notes;archetype._parentProps=c._parentProps;},_prepParentProperties:function(archetype,template){var parentProps=this._parentProps=archetype._parentProps;if(this._forwardParentProp&&parentProps){var proto=archetype._parentPropProto;var prop;if(!proto){for(prop in this._instanceProps){delete parentProps[prop];} proto=archetype._parentPropProto=Object.create(null);if(template!=this){Polymer.Bind.prepareModel(proto);Polymer.Base.prepareModelNotifyPath(proto);} @@ -4404,11 +4153,10 @@ function greaterPower(x,opt_base){const base=opt_base||10;return Math.pow(base,Math.ceil(logOrLog10(x,base)));} function lesserWholeNumber(x){if(x===0)return 0;const pow10=(x<0)?-lesserPower(-x):lesserPower(x);return pow10*Math.floor(x/pow10);} function greaterWholeNumber(x){if(x===0)return 0;const pow10=(x<0)?-lesserPower(-x):lesserPower(x);return pow10*Math.ceil(x/pow10);} -function truncate(value,digits){const pow10=Math.pow(10,digits);return Math.round(value*pow10)/pow10;} function preferredNumberLargerThanMin(min){const absMin=Math.abs(min);const conservativeGuess=tr.b.math.lesserPower(absMin);let minPreferedNumber=undefined;for(const multiplier of PREFERRED_NUMBER_SERIES_MULTIPLIERS){const tightenedGuess=conservativeGuess*multiplier;if(tightenedGuess>=absMin){minPreferedNumber=tightenedGuess;break;}} if(minPreferedNumber===undefined){throw new Error('Could not compute preferred number for '+min);} if(min<0)minPreferedNumber*=-1;return minPreferedNumber;} -return{approximately,clamp,lerp,normalize,deg2rad,erf,lesserPower,greaterPower,lesserWholeNumber,greaterWholeNumber,preferredNumberLargerThanMin,truncate,};});'use strict';tr.exportTo('tr.b.math',function(){function Range(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;} +return{approximately,clamp,lerp,normalize,deg2rad,erf,lesserPower,greaterPower,lesserWholeNumber,greaterWholeNumber,preferredNumberLargerThanMin,};});'use strict';tr.exportTo('tr.b.math',function(){function Range(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;} Range.prototype={__proto__:Object.prototype,clone(){if(this.isEmpty)return new Range();return Range.fromExplicitRange(this.min_,this.max_);},reset(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;},get isEmpty(){return this.isEmpty_;},addRange(range){if(range.isEmpty)return;this.addValue(range.min);this.addValue(range.max);},addValue(value){if(this.isEmpty_){this.max_=value;this.min_=value;this.isEmpty_=false;return;} this.max_=Math.max(this.max_,value);this.min_=Math.min(this.min_,value);},set min(min){this.isEmpty_=false;this.min_=min;},get min(){if(this.isEmpty_)return undefined;return this.min_;},get max(){if(this.isEmpty_)return undefined;return this.max_;},set max(max){this.isEmpty_=false;this.max_=max;},get range(){if(this.isEmpty_)return undefined;return this.max_-this.min_;},get center(){return(this.min_+this.max_)*0.5;},get duration(){if(this.isEmpty_)return 0;return this.max_-this.min_;},enclosingPowers(opt_base){if(this.isEmpty)return new Range();return Range.fromExplicitRange(tr.b.math.lesserPower(this.min_,opt_base),tr.b.math.greaterPower(this.max_,opt_base));},normalize(x){return tr.b.math.normalize(x,this.min,this.max);},lerp(x){return tr.b.math.lerp(x,this.min,this.max);},clamp(x){return tr.b.math.clamp(x,this.min,this.max);},equals(that){if(this.isEmpty&&that.isEmpty)return true;if(this.isEmpty!==that.isEmpty)return false;return(tr.b.math.approximately(this.min,that.min)&&tr.b.math.approximately(this.max,that.max));},containsExplicitRangeInclusive(min,max){if(this.isEmpty)return false;return this.min_<=min&&max<=this.max_;},containsExplicitRangeExclusive(min,max){if(this.isEmpty)return false;return this.min_<min&&max<this.max_;},intersectsExplicitRangeInclusive(min,max){if(this.isEmpty)return false;return this.min_<=max&&min<=this.max_;},intersectsExplicitRangeExclusive(min,max){if(this.isEmpty)return false;return this.min_<max&&min<this.max_;},containsRangeInclusive(range){if(range.isEmpty)return false;return this.containsExplicitRangeInclusive(range.min_,range.max_);},containsRangeExclusive(range){if(range.isEmpty)return false;return this.containsExplicitRangeExclusive(range.min_,range.max_);},intersectsRangeInclusive(range){if(range.isEmpty)return false;return this.intersectsExplicitRangeInclusive(range.min_,range.max_);},intersectsRangeExclusive(range){if(range.isEmpty)return false;return this.intersectsExplicitRangeExclusive(range.min_,range.max_);},findExplicitIntersectionDuration(min,max){min=Math.max(this.min,min);max=Math.min(this.max,max);if(max<min)return 0;return max-min;},findIntersection(range){if(this.isEmpty||range.isEmpty)return new Range();const min=Math.max(this.min,range.min);const max=Math.min(this.max,range.max);if(max<min)return new Range();return Range.fromExplicitRange(min,max);},toJSON(){if(this.isEmpty_)return{isEmpty:true};return{isEmpty:false,max:this.max,min:this.min};},filterArray(sortedArray,opt_keyFunc,opt_this){if(this.isEmpty_)return[];const keyFunc=opt_keyFunc||(x=>x);function getValue(obj){return keyFunc.call(opt_this,obj);} const first=tr.b.findFirstTrueIndexInSortedArray(sortedArray,obj=>this.min_===undefined||this.min_<=getValue(obj));const last=tr.b.findFirstTrueIndexInSortedArray(sortedArray,obj=>this.max_!==undefined&&this.max_<getValue(obj));return sortedArray.slice(first,last);}};Range.fromDict=function(d){if(d.isEmpty===true)return new Range();if(d.isEmpty===false){const range=new Range();range.min=d.min;range.max=d.max;return range;} @@ -4455,7 +4203,7 @@ let maxDiff=0;let minDiff=0;for(let i=1;i<locations.length;i++){const length=locations[i]-locations[i-1];const countClosed=countLessEqual[i]-countLess[i-1];const countOpen=countLess[i]-countLessEqual[i-1];const countClosedIncrement=countLessEqual[i]-countLessEqual[i-1];const countOpenIncrement=countLess[i]-countLess[i-1];maxDiff=Math.max(countClosedIncrement*invSampleCount-length+maxDiff,countClosed*invSampleCount-length);minDiff=Math.min(countOpenIncrement*invSampleCount-length+minDiff,countOpen*invSampleCount-length);maxLocalDiscrepancy=Math.max(maxDiff,-minDiff,maxLocalDiscrepancy);} return maxLocalDiscrepancy;};Statistics.timestampsDiscrepancy=function(timestamps,opt_absolute,opt_locationCount){if(timestamps.length===0)return 0.0;if(opt_absolute===undefined)opt_absolute=true;if(Array.isArray(timestamps[0])){const rangeDiscrepancies=timestamps.map(function(r){return Statistics.timestampsDiscrepancy(r);});return Math.max.apply(null,rangeDiscrepancies);} const s=Statistics.normalizeSamples(timestamps);const samples=s.normalized_samples;const sampleScale=s.scale;let discrepancy=Statistics.discrepancy(samples,opt_locationCount);const invSampleCount=1.0/samples.length;if(opt_absolute===true){discrepancy/=sampleScale;}else{discrepancy=tr.b.math.clamp((discrepancy-invSampleCount)/(1.0-invSampleCount),0.0,1.0);} -return discrepancy;};Statistics.uniformlySampleArray=function(samples,count){if(samples.length<=count){return samples;} +return discrepancy;};Statistics.durationsDiscrepancy=function(durations,opt_absolute,opt_locationCount){if(durations.length===0)return 0.0;const timestamps=durations.reduce(function(prev,curr,index,array){prev.push(prev[prev.length-1]+curr);return prev;},[0]);return Statistics.timestampsDiscrepancy(timestamps,opt_absolute,opt_locationCount);};Statistics.uniformlySampleArray=function(samples,count){if(samples.length<=count){return samples;} while(samples.length>count){const i=parseInt(Math.random()*samples.length);samples.splice(i,1);} return samples;};Statistics.uniformlySampleStream=function(samples,streamLength,newElement,numSamples){if(streamLength<=numSamples){if(samples.length>=streamLength){samples[streamLength-1]=newElement;}else{samples.push(newElement);} return;} @@ -4476,24 +4224,19 @@ compare(opt_alpha){const alpha=opt_alpha||Statistics.DEFAULT_ALPHA;if(this.p<alpha){this.significance_=Statistics.Significance.SIGNIFICANT;}else if(this.needMoreData_){this.significance_=Statistics.Significance.NEED_MORE_DATA;}else{this.significance_=Statistics.Significance.INSIGNIFICANT;} return this.significance_;} asDict(){return{p:this.p,U:this.U,significance:this.significance,};}} -Statistics.mwu=function(a,b,opt_alpha,opt_reqSampleSize){const result=mannwhitneyu.test(a,b);const needMoreData=opt_reqSampleSize&&Math.min(a.length,b.length)<opt_reqSampleSize;return new HypothesisTestResult(result.p,result.U,needMoreData,opt_alpha);};return{Statistics,};});'use strict';tr.exportTo('tr.b',function(){const GREEK_SMALL_LETTER_MU=String.fromCharCode(956);const SECONDS_IN_A_MINUTE=60;const SECONDS_IN_AN_HOUR=SECONDS_IN_A_MINUTE*60;const SECONDS_IN_A_DAY=SECONDS_IN_AN_HOUR*24;const SECONDS_IN_A_WEEK=SECONDS_IN_A_DAY*7;const SECONDS_IN_A_YEAR=SECONDS_IN_A_DAY*365.2422;const SECONDS_IN_A_MONTH=SECONDS_IN_A_YEAR/12;const UnitPrefixScale={};const UnitScale={};function defineUnitPrefixScale(name,prefixes){if(UnitPrefixScale[name]!==undefined){throw new Error('Unit prefix scale \''+name+'\' already exists');} +Statistics.mwu=function(a,b,opt_alpha,opt_reqSampleSize){const result=mannwhitneyu.test(a,b);const needMoreData=opt_reqSampleSize&&Math.min(a.length,b.length)<opt_reqSampleSize;return new HypothesisTestResult(result.p,result.U,needMoreData,opt_alpha);};return{Statistics,};});'use strict';const GREEK_SMALL_LETTER_MU=String.fromCharCode(956);tr.exportTo('tr.b',function(){const SECONDS_IN_A_MINUTE=60;const SECONDS_IN_AN_HOUR=SECONDS_IN_A_MINUTE*60;const SECONDS_IN_A_DAY=SECONDS_IN_AN_HOUR*24;const SECONDS_IN_A_WEEK=SECONDS_IN_A_DAY*7;const SECONDS_IN_A_YEAR=SECONDS_IN_A_DAY*365.2422;const SECONDS_IN_A_MONTH=SECONDS_IN_A_YEAR/12;const UnitPrefixScale={};const UnitScale={};function defineUnitPrefixScale(name,prefixes){if(UnitPrefixScale[name]!==undefined){throw new Error('Unit prefix scale \''+name+'\' already exists');} if(prefixes.AUTO!==undefined){throw new Error('The \'AUTO\' unit prefix is not supported for unit'+'prefix scales and cannot be added to scale \''+name+'\'');} UnitPrefixScale[name]=prefixes;} UnitScale.defineUnitScale=function(name,unitScale){if(UnitScale[name]!==undefined){throw new Error('Unit scale \''+name+'\' already exists');} if(unitScale.AUTO!==undefined){throw new Error('\'AUTO\' unit scale will be added automatically '+'for unit scale \''+name+'\'');} -unitScale.AUTO=Object.values(unitScale);unitScale.AUTO.sort((a,b)=>a.value-b.value);if(name)UnitScale[name]=unitScale;return unitScale;};function definePrefixScaleFromUnitScale(prefixName,unitScale){if(!unitScale){throw new Error('Cannot create PrefixScale without a unit scale.');} -const prefixScale={};for(const[curPrefix,curScale]of Object.entries(unitScale)){if(curPrefix==='AUTO'){continue;} -if(curScale.symbol===undefined||!curScale.value){throw new Error(`Cannot create PrefixScale from malformed unit ${curScale}.`);} -prefixScale[curPrefix]={value:curScale.value,symbol:curScale.symbol};} -return defineUnitPrefixScale(prefixName,prefixScale);} -UnitScale.defineUnitScaleFromPrefixScale=function(baseSymbol,baseName,prefixScale,opt_scaleName){if(baseSymbol===undefined){throw new Error('Cannot create UnitScale with undefined baseSymbol.');} +unitScale.AUTO=Object.values(unitScale);unitScale.AUTO.sort((a,b)=>a.value-b.value);if(name)UnitScale[name]=unitScale;return unitScale;};UnitScale.defineUnitScaleFromPrefixScale=function(baseSymbol,baseName,prefixScale,opt_scaleName){if(baseSymbol===undefined){throw new Error('Cannot create UnitScale with undefined baseSymbol.');} if(!baseName){throw new Error('Cannot create UnitScale without a baseName.');} if(!prefixScale){throw new Error('Cannot create UnitScale without a prefix scale.');} const unitScale={};for(const curPrefix of Object.keys(prefixScale)){const curScale=prefixScale[curPrefix];if(curScale.symbol===undefined||!curScale.value){throw new Error(`Cannot convert PrefixScale with malformed prefix ${curScale}.`);} const name=curPrefix==='NONE'?baseName:`${curPrefix}_${baseName}`;unitScale[name]={value:curScale.value,symbol:curScale.symbol+baseSymbol,baseSymbol};} return UnitScale.defineUnitScale(opt_scaleName,unitScale);};function convertUnit(value,fromScale,toScale){if(value===undefined)return undefined;const fromScaleBase=fromScale.baseSymbol;const toScaleBase=toScale.baseSymbol;if(fromScaleBase!==undefined&&toScaleBase!==undefined&&fromScaleBase!==toScaleBase){throw new Error('Cannot convert between units with different base symbols.');} return value*(fromScale.value/toScale.value);} -defineUnitPrefixScale('BINARY',{NONE:{value:Math.pow(1024,0),symbol:''},KIBI:{value:Math.pow(1024,1),symbol:'Ki'},MEBI:{value:Math.pow(1024,2),symbol:'Mi'},GIBI:{value:Math.pow(1024,3),symbol:'Gi'},TEBI:{value:Math.pow(1024,4),symbol:'Ti'}});defineUnitPrefixScale('METRIC',{NANO:{value:1e-9,symbol:'n'},MICRO:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU},MILLI:{value:1e-3,symbol:'m'},NONE:{value:1,symbol:''},KILO:{value:1e3,symbol:'k'},MEGA:{value:1e6,symbol:'M'},GIGA:{value:1e9,symbol:'G'}});UnitScale.defineUnitScale('TIME',{NANO_SEC:{value:1e-9,symbol:'ns',baseSymbol:'s'},MICRO_SEC:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU+'s',baseSymbol:'s'},MILLI_SEC:{value:1e-3,symbol:'ms',baseSymbol:'s'},SEC:{value:1,symbol:'s',baseSymbol:'s'},MINUTE:{value:SECONDS_IN_A_MINUTE,symbol:'min',baseSymbol:'s'},HOUR:{value:SECONDS_IN_AN_HOUR,symbol:'hr',baseSymbol:'s'},DAY:{value:SECONDS_IN_A_DAY,symbol:'days',baseSymbol:'s'},WEEK:{value:SECONDS_IN_A_WEEK,symbol:'weeks',baseSymbol:'s'},MONTH:{value:SECONDS_IN_A_MONTH,symbol:'months',baseSymbol:'s'},YEAR:{value:SECONDS_IN_A_YEAR,symbol:'years',baseSymbol:'s'}});UnitScale.defineUnitScaleFromPrefixScale('B','BYTE',UnitPrefixScale.BINARY,'MEMORY');definePrefixScaleFromUnitScale('DATA_SIZE',UnitScale.MEMORY);UnitScale.defineUnitScaleFromPrefixScale('/s','SECONDS',UnitPrefixScale.DATA_SIZE,'BANDWIDTH_BYTES');return{UnitPrefixScale,UnitScale,convertUnit,GREEK_SMALL_LETTER_MU,};});'use strict';tr.exportTo('tr.b',function(){const msDisplayMode={scale:1e-3,suffix:'ms',roundedLess(a,b){return Math.round(a*1000)<Math.round(b*1000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.MILLI_SEC],minimumFractionDigits:3,}};const nsDisplayMode={scale:1e-9,suffix:'ns',roundedLess(a,b){return Math.round(a*1000000)<Math.round(b*1000000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.NANO_SEC],maximumFractionDigits:0}};const TimeDisplayModes={ns:nsDisplayMode,ms:msDisplayMode};return{TimeDisplayModes,};});'use strict';tr.exportTo('tr.ui.b',function(){function iterateElementDeeplyImpl(element,cb,thisArg,includeElement){if(includeElement&&cb.call(thisArg,element))return true;if(element.root&&element.root!==element&&iterateElementDeeplyImpl(element.root,cb,thisArg,false)){return true;} +defineUnitPrefixScale('BINARY',{NONE:{value:Math.pow(1024,0),symbol:''},KIBI:{value:Math.pow(1024,1),symbol:'Ki'},MEBI:{value:Math.pow(1024,2),symbol:'Mi'},GIBI:{value:Math.pow(1024,3),symbol:'Gi'},TEBI:{value:Math.pow(1024,4),symbol:'Ti'}});defineUnitPrefixScale('METRIC',{NANO:{value:1e-9,symbol:'n'},MICRO:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU},MILLI:{value:1e-3,symbol:'m'},NONE:{value:1,symbol:''},KILO:{value:1e3,symbol:'k'},MEGA:{value:1e6,symbol:'M'},GIGA:{value:1e9,symbol:'G'}});UnitScale.defineUnitScale('TIME',{NANO_SEC:{value:1e-9,symbol:'ns',baseSymbol:'s'},MICRO_SEC:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU+'s',baseSymbol:'s'},MILLI_SEC:{value:1e-3,symbol:'ms',baseSymbol:'s'},SEC:{value:1,symbol:'s',baseSymbol:'s'},MINUTE:{value:SECONDS_IN_A_MINUTE,symbol:'min',baseSymbol:'s'},HOUR:{value:SECONDS_IN_AN_HOUR,symbol:'hr',baseSymbol:'s'},DAY:{value:SECONDS_IN_A_DAY,symbol:'days',baseSymbol:'s'},WEEK:{value:SECONDS_IN_A_WEEK,symbol:'weeks',baseSymbol:'s'},MONTH:{value:SECONDS_IN_A_MONTH,symbol:'months',baseSymbol:'s'},YEAR:{value:SECONDS_IN_A_YEAR,symbol:'years',baseSymbol:'s'}});UnitScale.defineUnitScaleFromPrefixScale('B','BYTE',UnitPrefixScale.BINARY,'MEMORY');return{UnitPrefixScale,UnitScale,convertUnit,};});'use strict';tr.exportTo('tr.b',function(){const msDisplayMode={scale:1e-3,suffix:'ms',roundedLess(a,b){return Math.round(a*1000)<Math.round(b*1000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.MILLI_SEC],minimumFractionDigits:3,}};const nsDisplayMode={scale:1e-9,suffix:'ns',roundedLess(a,b){return Math.round(a*1000000)<Math.round(b*1000000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.NANO_SEC],maximumFractionDigits:0}};const TimeDisplayModes={ns:nsDisplayMode,ms:msDisplayMode};return{TimeDisplayModes,};});'use strict';tr.exportTo('tr.ui.b',function(){function iterateElementDeeplyImpl(element,cb,thisArg,includeElement){if(includeElement&&cb.call(thisArg,element))return true;if(element.root&&element.root!==element&&iterateElementDeeplyImpl(element.root,cb,thisArg,false)){return true;} const children=Polymer.dom(element).children;for(let i=0;i<children.length;i++){if(iterateElementDeeplyImpl(children[i],cb,thisArg,true)){return true;}} return false;} function iterateElementDeeply(element,cb,thisArg){iterateElementDeeplyImpl(element,cb,thisArg,false);} @@ -4511,23 +4254,19 @@ return formatter;} function max(a,b){if(a===undefined)return b;if(b===undefined)return a;return a.scale>b.scale?a:b;} const ImprovementDirection={DONT_CARE:0,BIGGER_IS_BETTER:1,SMALLER_IS_BETTER:2};function Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,formatSpec){this.unitName=unitName;this.jsonName=jsonName;this.scaleBaseUnit=scaleBaseUnit;this.isDelta=isDelta;this.improvementDirection=improvementDirection;this.formatSpec_=formatSpec;this.baseUnit=undefined;this.correspondingDeltaUnit=undefined;} -Unit.prototype={asJSON(){return this.jsonName;},asJSON2(){return this.asJSON().replace('_smallerIsBetter','-').replace('_biggerIsBetter','+');},truncate(value){if(typeof value!=='number')return value;if(0===(value%1))return value;if(typeof this.formatSpec_!=='function'&&(!this.formatSpec_.unitScale||((this.formatSpec_.unitScale.length===1)&&(this.formatSpec_.unitScale[0].value===1)))){const digits=this.formatSpec_.maximumFractionDigits||this.formatSpec_.minimumFractionDigits;return tr.b.math.truncate(value,digits+1);} -const formatted=this.format(value);let test=Math.round(value);if(formatted===this.format(test))return test;let lo=1;let hi=16;while(lo<hi-1){const digits=parseInt((lo+hi)/2);test=tr.b.math.truncate(value,digits);if(formatted===this.format(test)){hi=digits;}else{lo=digits;}} -test=tr.b.math.truncate(value,lo);if(formatted===this.format(test))return test;return tr.b.math.truncate(value,hi);},getUnitScale_(opt_context){let formatSpec=this.formatSpec_;let formatSpecWasFunction=false;if(typeof formatSpec==='function'){formatSpecWasFunction=true;formatSpec=formatSpec();} +Unit.prototype={asJSON(){return this.jsonName;},getUnitScale_(opt_context){let formatSpec=this.formatSpec_;let formatSpecWasFunction=false;if(typeof formatSpec==='function'){formatSpecWasFunction=true;formatSpec=formatSpec();} const context=opt_context||{};let scale=undefined;if(context.unitScale){scale=context.unitScale;}else if(context.unitPrefix){const symbol=formatSpec.baseSymbol?formatSpec.baseSymbol:this.scaleBaseUnit.baseSymbol;scale=tr.b.UnitScale.defineUnitScaleFromPrefixScale(symbol,symbol,[context.unitPrefix]).AUTO;}else{scale=formatSpec.unitScale;if(!scale){scale=[{value:1,symbol:formatSpec.baseSymbol||'',baseSymbol:formatSpec.baseSymbol||''}];if(!formatSpecWasFunction)formatSpec.unitScale=scale;}} if(!(scale instanceof Array)){throw new Error('Unit has a malformed unit scale.');} return scale;},get unitString(){const scale=this.getUnitScale_();if(!scale){throw new Error('A UnitScale could not be found for Unit '+this.unitName);} return scale[0].symbol;},format(value,opt_context){let signString='';if(value<0){signString='-';value=-value;}else if(this.isDelta){signString=value===0?PLUS_MINUS_SIGN:'+';} -const context=opt_context||{};const scale=this.getUnitScale_(context);let deltaValue=context.deltaValue===undefined?value:context.deltaValue;deltaValue=Math.abs(deltaValue)*this.scaleBaseUnit.value;if(deltaValue===0){deltaValue=1;} -let i=0;while(i<scale.length-1&&deltaValue/scale[i+1].value>=1){i++;} +const context=opt_context||{};const scale=this.getUnitScale_(context);let deltaValue=context.deltaValue===undefined?value:context.deltaValue;deltaValue=Math.abs(deltaValue)*this.scaleBaseUnit.value;let i=0;while(i<scale.length-1&&deltaValue/scale[i+1].value>=1){i++;} const selectedSubUnit=scale[i];let formatSpec=this.formatSpec_;if(typeof formatSpec==='function')formatSpec=formatSpec();let unitString='';if(selectedSubUnit.symbol){if(!formatSpec.avoidSpacePrecedingUnit)unitString=' ';unitString+=selectedSubUnit.symbol;} -value=tr.b.convertUnit(value,this.scaleBaseUnit,selectedSubUnit);const numberString=getNumberFormatter(formatSpec.minimumFractionDigits,formatSpec.maximumFractionDigits,context.minimumFractionDigits,context.maximumFractionDigits).format(value);return signString+numberString+unitString;}};Unit.reset=function(){Unit.currentTimeDisplayMode=TimeDisplayModes.ms;};Unit.timestampFromUs=function(us){return tr.b.convertUnit(us,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);};Object.defineProperty(Unit,'currentTimeDisplayMode',{get(){return Unit.currentTimeDisplayMode_;},set(value){if(Unit.currentTimeDisplayMode_===value)return;Unit.currentTimeDisplayMode_=value;Unit.dispatchEvent(new tr.b.Event('display-mode-changed'));}});Unit.didPreferredTimeDisplayUnitChange=function(){let largest=undefined;const els=tr.ui.b.findDeepElementsMatching(document.body,'tr-v-ui-preferred-display-unit');els.forEach(function(el){largest=max(largest,el.preferredTimeDisplayMode);});Unit.currentTimeDisplayMode=largest===undefined?TimeDisplayModes.ms:largest;};Unit.byName={};Unit.byJSONName={};Unit.fromJSON=function(object){if(typeof(object)==='string'){if(object.endsWith('+')){object=object.slice(0,object.length-1)+'_biggerIsBetter';}else if(object.endsWith('-')){object=object.slice(0,object.length-1)+'_smallerIsBetter';} -const u=Unit.byJSONName[object];if(u)return u;} +value=tr.b.convertUnit(value,this.scaleBaseUnit,selectedSubUnit);const numberString=getNumberFormatter(formatSpec.minimumFractionDigits,formatSpec.maximumFractionDigits,context.minimumFractionDigits,context.maximumFractionDigits).format(value);return signString+numberString+unitString;}};Unit.reset=function(){Unit.currentTimeDisplayMode=TimeDisplayModes.ms;};Unit.timestampFromUs=function(us){return tr.b.convertUnit(us,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);};Object.defineProperty(Unit,'currentTimeDisplayMode',{get(){return Unit.currentTimeDisplayMode_;},set(value){if(Unit.currentTimeDisplayMode_===value)return;Unit.currentTimeDisplayMode_=value;Unit.dispatchEvent(new tr.b.Event('display-mode-changed'));}});Unit.didPreferredTimeDisplayUnitChange=function(){let largest=undefined;const els=tr.ui.b.findDeepElementsMatching(document.body,'tr-v-ui-preferred-display-unit');els.forEach(function(el){largest=max(largest,el.preferredTimeDisplayMode);});Unit.currentTimeDisplayMode=largest===undefined?TimeDisplayModes.ms:largest;};Unit.byName={};Unit.byJSONName={};Unit.fromJSON=function(object){const u=Unit.byJSONName[object];if(u){return u;} throw new Error(`Unrecognized unit "${object}"`);};Unit.define=function(params){const definedUnits=[];for(const improvementDirection of Object.values(ImprovementDirection)){const regularUnit=Unit.defineUnitVariant_(params,false,improvementDirection);const deltaUnit=Unit.defineUnitVariant_(params,true,improvementDirection);regularUnit.correspondingDeltaUnit=deltaUnit;deltaUnit.correspondingDeltaUnit=deltaUnit;definedUnits.push(regularUnit,deltaUnit);} const baseUnit=Unit.byName[params.baseUnitName];definedUnits.forEach(u=>u.baseUnit=baseUnit);};Unit.nameSuffixForImprovementDirection=function(improvementDirection){switch(improvementDirection){case ImprovementDirection.DONT_CARE:return'';case ImprovementDirection.BIGGER_IS_BETTER:return'_biggerIsBetter';case ImprovementDirection.SMALLER_IS_BETTER:return'_smallerIsBetter';default:throw new Error('Unknown improvement direction: '+improvementDirection);}};Unit.defineUnitVariant_=function(params,isDelta,improvementDirection){let nameSuffix=isDelta?'Delta':'';nameSuffix+=Unit.nameSuffixForImprovementDirection(improvementDirection);const unitName=params.baseUnitName+nameSuffix;const jsonName=params.baseJsonName+nameSuffix;if(Unit.byName[unitName]!==undefined){throw new Error('Unit \''+unitName+'\' already exists');} if(Unit.byJSONName[jsonName]!==undefined){throw new Error('JSON unit \''+jsonName+'\' alread exists');} let scaleBaseUnit=params.scaleBaseUnit;if(!scaleBaseUnit){let formatSpec=params.formatSpec;if(typeof formatSpec==='function')formatSpec=formatSpec();const baseSymbol=formatSpec.unitScale?formatSpec.unitScale[0].baseSymbol:(formatSpec.baseSymbol||'');scaleBaseUnit={value:1,symbol:baseSymbol,baseSymbol};} -const unit=new Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,params.formatSpec);Unit.byName[unitName]=unit;Unit.byJSONName[jsonName]=unit;return unit;};tr.b.EventTarget.decorate(Unit);Unit.reset();Unit.define({baseUnitName:'timeInMsAutoFormat',baseJsonName:'msBestFitFormat',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec:{unitScale:tr.b.UnitScale.TIME.AUTO,minimumFractionDigits:0,maximumFractionDigits:3}});Unit.define({baseUnitName:'timeDurationInMs',baseJsonName:'ms',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'timeStampInMs',baseJsonName:'tsMs',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'normalizedPercentage',baseJsonName:'n%',formatSpec:{unitScale:[{value:0.01,symbol:'%'}],avoidSpacePrecedingUnit:true,minimumFractionDigits:1,maximumFractionDigits:1}});Unit.define({baseUnitName:'sizeInBytes',baseJsonName:'sizeInBytes',formatSpec:{unitScale:tr.b.UnitScale.MEMORY.AUTO,minimumFractionDigits:1,maximumFractionDigits:1}});Unit.define({baseUnitName:'bandwidthInBytesPerSecond',baseJsonName:'bytesPerSecond',formatSpec:{unitScale:tr.b.UnitScale.BANDWIDTH_BYTES.AUTO,minimumFractionDigits:1,maximumFractionDigits:1}});Unit.define({baseUnitName:'energyInJoules',baseJsonName:'J',formatSpec:{unitScale:tr.b.UnitScale.defineUnitScaleFromPrefixScale('J','JOULE',tr.b.UnitPrefixScale.METRIC,'JOULE').AUTO,minimumFractionDigits:3}});Unit.define({baseUnitName:'powerInWatts',baseJsonName:'W',formatSpec:{unitScale:tr.b.UnitScale.defineUnitScaleFromPrefixScale('W','WATT',tr.b.UnitPrefixScale.METRIC,'WATT').AUTO,minimumFractionDigits:3}});Unit.define({baseUnitName:'electricCurrentInAmperes',baseJsonName:'A',formatSpec:{baseSymbol:'A',unitScale:tr.b.UnitScale.defineUnitScaleFromPrefixScale('A','AMPERE',tr.b.UnitPrefixScale.METRIC,'AMPERE').AUTO,minimumFractionDigits:3}});Unit.define({baseUnitName:'electricPotentialInVolts',baseJsonName:'V',formatSpec:{baseSymbol:'V',unitScale:tr.b.UnitScale.defineUnitScaleFromPrefixScale('V','VOLT',tr.b.UnitPrefixScale.METRIC,'VOLT').AUTO,minimumFractionDigits:3}});Unit.define({baseUnitName:'frequencyInHertz',baseJsonName:'Hz',formatSpec:{baseSymbol:'Hz',unitScale:tr.b.UnitScale.defineUnitScaleFromPrefixScale('Hz','HERTZ',tr.b.UnitPrefixScale.METRIC,'HERTZ').AUTO,minimumFractionDigits:3}});Unit.define({baseUnitName:'unitlessNumber',baseJsonName:'unitless',formatSpec:{minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'count',baseJsonName:'count',formatSpec:{minimumFractionDigits:0,maximumFractionDigits:0}});Unit.define({baseUnitName:'sigma',baseJsonName:'sigma',formatSpec:{baseSymbol:String.fromCharCode(963),minimumFractionDigits:1,maximumFractionDigits:1}});return{ImprovementDirection,Unit,};});'use strict';tr.exportTo('tr.b',function(){class Scalar{constructor(unit,value){if(!(unit instanceof tr.b.Unit)){throw new Error('Expected Unit');} +const unit=new Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,params.formatSpec);Unit.byName[unitName]=unit;Unit.byJSONName[jsonName]=unit;return unit;};tr.b.EventTarget.decorate(Unit);Unit.reset();Unit.define({baseUnitName:'timeInMsAutoFormat',baseJsonName:'msBestFitFormat',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec:{unitScale:tr.b.UnitScale.TIME.AUTO,minimumFractionDigits:0,maximumFractionDigits:3}});Unit.define({baseUnitName:'timeDurationInMs',baseJsonName:'ms',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'timeStampInMs',baseJsonName:'tsMs',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'normalizedPercentage',baseJsonName:'n%',formatSpec:{unitScale:[{value:0.01,symbol:'%'}],avoidSpacePrecedingUnit:true,minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'sizeInBytes',baseJsonName:'sizeInBytes',formatSpec:{unitScale:tr.b.UnitScale.MEMORY.AUTO,minimumFractionDigits:1,maximumFractionDigits:1}});Unit.define({baseUnitName:'energyInJoules',baseJsonName:'J',formatSpec:{baseSymbol:'J',minimumFractionDigits:3}});Unit.define({baseUnitName:'powerInWatts',baseJsonName:'W',formatSpec:{baseSymbol:'W',minimumFractionDigits:3}});Unit.define({baseUnitName:'unitlessNumber',baseJsonName:'unitless',formatSpec:{minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'count',baseJsonName:'count',formatSpec:{minimumFractionDigits:0,maximumFractionDigits:0}});Unit.define({baseUnitName:'sigma',baseJsonName:'sigma',formatSpec:{baseSymbol:String.fromCharCode(963),minimumFractionDigits:1,maximumFractionDigits:1}});return{ImprovementDirection,Unit,};});'use strict';tr.exportTo('tr.b',function(){class Scalar{constructor(unit,value){if(!(unit instanceof tr.b.Unit)){throw new Error('Expected Unit');} if(!(typeof(value)==='number')){throw new Error('Expected value to be number');} this.unit=unit;this.value=value;} asDict(){return{unit:this.unit.asJSON(),value:tr.b.numberToJson(this.value),};} @@ -4554,11 +4293,7 @@ h/=6;} return{h,s,l,a:this.a};},toStringWithAlphaOverride(alpha){return'rgba('+ this.r+','+this.g+','+ -this.b+','+alpha+')';}};return{Color,};});'use strict';tr.exportTo('tr.b',function(){function SinebowColorGenerator(opt_a,opt_brightness){this.a_=(opt_a===undefined)?1:opt_a;this.brightness_=(opt_brightness===undefined)?1:opt_brightness;this.colorIndex_=0;this.keyToColor={};} -SinebowColorGenerator.prototype={colorForKey(key){if(!this.keyToColor[key]){this.keyToColor[key]=this.nextColor();} -return this.keyToColor[key];},nextColor(){const components=SinebowColorGenerator.nthColor(this.colorIndex_++);return tr.b.Color.fromString(SinebowColorGenerator.calculateColor(components[0],components[1],components[2],this.a_,this.brightness_));}};SinebowColorGenerator.PHI=(1+Math.sqrt(5))/2;SinebowColorGenerator.sinebow=function(h){h+=0.5;h=-h;let r=Math.sin(Math.PI*h);let g=Math.sin(Math.PI*(h+1/3));let b=Math.sin(Math.PI*(h+2/3));r*=r;g*=g;b*=b;const y=2*(0.2989*r+0.5870*g+0.1140*b);r/=y;g/=y;b/=y;return[256*r,256*g,256*b];};SinebowColorGenerator.nthColor=function(n){return SinebowColorGenerator.sinebow(n*this.PHI);};SinebowColorGenerator.calculateColor=function(r,g,b,a,brightness){if(brightness<=1){r*=brightness;g*=brightness;b*=brightness;}else{r=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),r,255);g=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),g,255);b=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),b,255);} -r=Math.round(r);g=Math.round(g);b=Math.round(b);return'rgba('+r+','+g+','+b+', '+a+')';};return{SinebowColorGenerator,};});'use strict';tr.exportTo('tr.b',function(){const numGeneralPurposeColorIds=23;const generalPurposeColors=new Array(numGeneralPurposeColorIds);const sinebowAlpha=1.0;const sinebowBrightness=1.5;const sinebowColorGenerator=new tr.b.SinebowColorGenerator(sinebowAlpha,sinebowBrightness);for(let i=0;i<numGeneralPurposeColorIds;i++){generalPurposeColors[i]=sinebowColorGenerator.nextColor();} -const reservedColorsByName={thread_state_uninterruptible:new tr.b.Color(182,125,143),thread_state_iowait:new tr.b.Color(255,140,0),thread_state_running:new tr.b.Color(126,200,148),thread_state_runnable:new tr.b.Color(133,160,210),thread_state_sleeping:new tr.b.Color(240,240,240),thread_state_unknown:new tr.b.Color(199,155,125),background_memory_dump:new tr.b.Color(0,180,180),light_memory_dump:new tr.b.Color(0,0,180),detailed_memory_dump:new tr.b.Color(180,0,180),vsync_highlight_color:new tr.b.Color(0,0,255),generic_work:new tr.b.Color(125,125,125),good:new tr.b.Color(0,125,0),bad:new tr.b.Color(180,125,0),terrible:new tr.b.Color(180,0,0),black:new tr.b.Color(0,0,0),grey:new tr.b.Color(221,221,221),white:new tr.b.Color(255,255,255),yellow:new tr.b.Color(255,255,0),olive:new tr.b.Color(100,100,0),rail_response:new tr.b.Color(67,135,253),rail_animation:new tr.b.Color(244,74,63),rail_idle:new tr.b.Color(238,142,0),rail_load:new tr.b.Color(13,168,97),startup:new tr.b.Color(230,230,0),heap_dump_stack_frame:new tr.b.Color(128,128,128),heap_dump_object_type:new tr.b.Color(0,0,255),heap_dump_child_node_arrow:new tr.b.Color(204,102,0),cq_build_running:new tr.b.Color(255,255,119),cq_build_passed:new tr.b.Color(153,238,102),cq_build_failed:new tr.b.Color(238,136,136),cq_build_abandoned:new tr.b.Color(187,187,187),cq_build_attempt_runnig:new tr.b.Color(222,222,75),cq_build_attempt_passed:new tr.b.Color(103,218,35),cq_build_attempt_failed:new tr.b.Color(197,81,81)};const numReservedColorIds=Object.keys(reservedColorsByName).length;const numColorsPerVariant=numGeneralPurposeColorIds+numReservedColorIds;function ColorScheme(){} +this.b+','+alpha+')';}};return{Color,};});'use strict';tr.exportTo('tr.b',function(){const generalPurposeColors=[new tr.b.Color(122,98,135),new tr.b.Color(150,83,105),new tr.b.Color(44,56,189),new tr.b.Color(99,86,147),new tr.b.Color(104,129,107),new tr.b.Color(130,178,55),new tr.b.Color(87,109,147),new tr.b.Color(111,145,88),new tr.b.Color(81,152,131),new tr.b.Color(142,91,111),new tr.b.Color(81,163,70),new tr.b.Color(148,94,86),new tr.b.Color(144,89,118),new tr.b.Color(83,150,97),new tr.b.Color(105,94,139),new tr.b.Color(89,144,122),new tr.b.Color(105,119,128),new tr.b.Color(96,128,137),new tr.b.Color(145,88,145),new tr.b.Color(88,145,144),new tr.b.Color(90,100,143),new tr.b.Color(121,97,136),new tr.b.Color(111,160,73),new tr.b.Color(112,91,142),new tr.b.Color(86,147,86),new tr.b.Color(63,100,170),new tr.b.Color(81,152,107),new tr.b.Color(60,164,173),new tr.b.Color(143,72,161),new tr.b.Color(159,74,86)];const reservedColorsByName={thread_state_uninterruptible:new tr.b.Color(182,125,143),thread_state_iowait:new tr.b.Color(255,140,0),thread_state_running:new tr.b.Color(126,200,148),thread_state_runnable:new tr.b.Color(133,160,210),thread_state_sleeping:new tr.b.Color(240,240,240),thread_state_unknown:new tr.b.Color(199,155,125),background_memory_dump:new tr.b.Color(0,180,180),light_memory_dump:new tr.b.Color(0,0,180),detailed_memory_dump:new tr.b.Color(180,0,180),vsync_highlight_color:new tr.b.Color(0,0,255),generic_work:new tr.b.Color(125,125,125),good:new tr.b.Color(0,125,0),bad:new tr.b.Color(180,125,0),terrible:new tr.b.Color(180,0,0),black:new tr.b.Color(0,0,0),grey:new tr.b.Color(221,221,221),white:new tr.b.Color(255,255,255),yellow:new tr.b.Color(255,255,0),olive:new tr.b.Color(100,100,0),rail_response:new tr.b.Color(67,135,253),rail_animation:new tr.b.Color(244,74,63),rail_idle:new tr.b.Color(238,142,0),rail_load:new tr.b.Color(13,168,97),startup:new tr.b.Color(230,230,0),heap_dump_stack_frame:new tr.b.Color(128,128,128),heap_dump_object_type:new tr.b.Color(0,0,255),heap_dump_child_node_arrow:new tr.b.Color(204,102,0),cq_build_running:new tr.b.Color(255,255,119),cq_build_passed:new tr.b.Color(153,238,102),cq_build_failed:new tr.b.Color(238,136,136),cq_build_abandoned:new tr.b.Color(187,187,187),cq_build_attempt_runnig:new tr.b.Color(222,222,75),cq_build_attempt_passed:new tr.b.Color(103,218,35),cq_build_attempt_failed:new tr.b.Color(197,81,81)};const numGeneralPurposeColorIds=generalPurposeColors.length;const numReservedColorIds=Object.keys(reservedColorsByName).length;const numColorsPerVariant=numGeneralPurposeColorIds+numReservedColorIds;function ColorScheme(){} const paletteBase=[];paletteBase.push.apply(paletteBase,generalPurposeColors);paletteBase.push.apply(paletteBase,Object.values(reservedColorsByName));ColorScheme.colors=[];ColorScheme.properties={};ColorScheme.properties={numColorsPerVariant,};function pushVariant(func){const variantColors=paletteBase.map(func);ColorScheme.colors.push.apply(ColorScheme.colors,variantColors);} pushVariant(function(c){return c;});ColorScheme.properties.brightenedOffsets=[];ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.3,0.8);});ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.48,0.85);});ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.65,0.9);});ColorScheme.properties.dimmedOffsets=[];ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate();});ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate(0.5);});ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate(0.3);});ColorScheme.colorsAsStrings=ColorScheme.colors.map(function(c){return c.toString();});const reservedColorNameToIdMap=(function(){const m=new Map();let i=generalPurposeColors.length;for(const key of Object.keys(reservedColorsByName)){m.set(key,i++);} return m;})();ColorScheme.getColorIdForReservedName=function(name){const id=reservedColorNameToIdMap.get(name);if(id===undefined){throw new Error('Unrecognized color '+name);} @@ -4592,7 +4327,7 @@ SelectableItem.prototype={get modelItem(){return this.modelItem_;},get selected(){return this.selectionState===SelectionState.SELECTED;},addToSelection(selection){const modelItem=this.modelItem_;if(!modelItem)return;selection.push(modelItem);},addToTrackMap(eventToTrackMap,track){const modelItem=this.modelItem_;if(!modelItem)return;eventToTrackMap.addEvent(modelItem,track);}};return{SelectableItem,};});'use strict';tr.exportTo('tr.model',function(){const SelectableItem=tr.model.SelectableItem;const SelectionState=tr.model.SelectionState;const IMMUTABLE_EMPTY_SET=tr.model.EventSet.IMMUTABLE_EMPTY_SET;function Event(){SelectableItem.call(this,this);this.guid_=tr.b.GUID.allocateSimple();this.selectionState=SelectionState.NONE;this.info=undefined;} Event.prototype={__proto__:SelectableItem.prototype,get guid(){return this.guid_;},get stableId(){return undefined;},get range(){const range=new tr.b.math.Range();this.addBoundsToRange(range);return range;},associatedAlerts:IMMUTABLE_EMPTY_SET,addAssociatedAlert(alert){if(this.associatedAlerts===IMMUTABLE_EMPTY_SET){this.associatedAlerts=new tr.model.EventSet();} this.associatedAlerts.push(alert);},addBoundsToRange(range){}};return{Event,};});'use strict';tr.exportTo('tr.model',function(){function TimedEvent(start){tr.model.Event.call(this);this.start=start;this.duration=0;this.cpuStart=undefined;this.cpuDuration=undefined;this.contexts=Object.freeze([]);} -TimedEvent.prototype={__proto__:tr.model.Event.prototype,get end(){return this.start+this.duration;},get boundsRange(){return tr.b.math.Range.fromExplicitRange(this.start,this.end);},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);},bounds(that,opt_precisionUnit){if(opt_precisionUnit===undefined){opt_precisionUnit=tr.b.TimeDisplayModes.ms;} +TimedEvent.prototype={__proto__:tr.model.Event.prototype,get end(){return this.start+this.duration;},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);},bounds(that,opt_precisionUnit){if(opt_precisionUnit===undefined){opt_precisionUnit=tr.b.TimeDisplayModes.ms;} const startsBefore=opt_precisionUnit.roundedLess(that.start,this.start);const endsAfter=opt_precisionUnit.roundedLess(this.end,that.end);return!startsBefore&&!endsAfter;}};return{TimedEvent,};});'use strict';tr.exportTo('tr.model',function(){function Alert(info,start,opt_associatedEvents,opt_args){tr.model.TimedEvent.call(this,start);this.info=info;this.args=opt_args||{};this.associatedEvents=new tr.model.EventSet(opt_associatedEvents);this.associatedEvents.forEach(function(event){event.addAssociatedAlert(this);},this);} Alert.prototype={__proto__:tr.model.TimedEvent.prototype,get title(){return this.info.title;},get colorId(){return this.info.colorId;},get userFriendlyName(){return'Alert '+this.title+' at '+ tr.b.Unit.byName.timeStampInMs.format(this.start);}};tr.model.EventRegistry.register(Alert,{name:'alert',pluralName:'alerts'});return{Alert,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const Statistics=tr.b.math.Statistics;const FRAME_PERF_CLASS={GOOD:'good',BAD:'bad',TERRIBLE:'terrible',NEUTRAL:'generic_work'};function Frame(associatedEvents,threadTimeRanges,opt_args){tr.model.Event.call(this);this.threadTimeRanges=threadTimeRanges;this.associatedEvents=new tr.model.EventSet(associatedEvents);this.args=opt_args||{};this.title='Frame';this.start=Statistics.min(threadTimeRanges,function(x){return x.start;});this.end=Statistics.max(threadTimeRanges,function(x){return x.end;});this.totalDuration=Statistics.sum(threadTimeRanges,function(x){return x.end-x.start;});this.perfClass=FRAME_PERF_CLASS.NEUTRAL;} @@ -4739,13 +4474,9 @@ for(const s of this.subSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},findDescendentSlice(targetTitle){if(!this.subSlices)return undefined;for(let i=0;i<this.subSlices.length;i++){if(this.subSlices[i].title===targetTitle){return this.subSlices[i];} const slice=this.subSlices[i].findDescendentSlice(targetTitle);if(slice)return slice;} return undefined;},*enumerateAllDescendents(){for(const slice of this.subSlices){yield slice;} -for(const slice of this.subSlices){if(slice.enumerateAllDescendents!==undefined){yield*slice.enumerateAllDescendents();}}},compareTo(that){return this.title.localeCompare(that.title);}};tr.model.EventRegistry.register(AsyncSlice,{name:'asyncSlice',pluralName:'asyncSlices'});return{AsyncSlice,};});'use strict';tr.exportTo('tr.e.blink',function(){class BlinkSchedulerAsyncSlice extends tr.model.AsyncSlice{get viewSubGroupGroupingKey(){if(this.title.startsWith('FrameScheduler.')){return'Frame'+this.id;} -if(this.title.startsWith('Scheduler.')){return'Renderer Scheduler';} -return undefined;} -get viewSubGroupTitle(){if(this.title.startsWith('FrameScheduler.')){return this.title.substring(15);} -if(this.title.startsWith('Scheduler.')){return this.title.substring(10);} -return this.title;}} -tr.model.AsyncSlice.subTypes.register(BlinkSchedulerAsyncSlice,{categoryParts:['renderer.scheduler','disabled-by-default-renderer.scheduler','disabled-by-default-renderer.scheduler.debug',]});return{BlinkSchedulerAsyncSlice,};});'use strict';tr.exportTo('tr.model.helpers',function(){const MAIN_FRAMETIME_TYPE='main_frametime_type';const IMPL_FRAMETIME_TYPE='impl_frametime_type';const MAIN_RENDERING_STATS='BenchmarkInstrumentation::MainThreadRenderingStats';const IMPL_RENDERING_STATS='BenchmarkInstrumentation::ImplThreadRenderingStats';function getSlicesIntersectingRange(rangeOfInterest,slices){const slicesInFilterRange=[];for(let i=0;i<slices.length;i++){const slice=slices[i];if(rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end)){slicesInFilterRange.push(slice);}} +for(const slice of this.subSlices){if(slice.enumerateAllDescendents!==undefined){yield*slice.enumerateAllDescendents();}}},compareTo(that){return this.title.localeCompare(that.title);}};tr.model.EventRegistry.register(AsyncSlice,{name:'asyncSlice',pluralName:'asyncSlices'});return{AsyncSlice,};});'use strict';tr.exportTo('tr.e.blink',function(){class BlinkSchedulerAsyncSlice extends tr.model.AsyncSlice{get viewSubGroupGroupingKey(){if(this.title.startsWith('WebFrameScheduler.')){return'WebFrame'+this.id;} +return undefined;}} +tr.model.AsyncSlice.subTypes.register(BlinkSchedulerAsyncSlice,{categoryParts:['renderer.scheduler','disabled-by-default-renderer.scheduler',]});return{BlinkSchedulerAsyncSlice,};});'use strict';tr.exportTo('tr.model.helpers',function(){const MAIN_FRAMETIME_TYPE='main_frametime_type';const IMPL_FRAMETIME_TYPE='impl_frametime_type';const MAIN_RENDERING_STATS='BenchmarkInstrumentation::MainThreadRenderingStats';const IMPL_RENDERING_STATS='BenchmarkInstrumentation::ImplThreadRenderingStats';function getSlicesIntersectingRange(rangeOfInterest,slices){const slicesInFilterRange=[];for(let i=0;i<slices.length;i++){const slice=slices[i];if(rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end)){slicesInFilterRange.push(slice);}} return slicesInFilterRange;} function ChromeProcessHelper(modelHelper,process){this.modelHelper=modelHelper;this.process=process;this.telemetryInternalRanges_=undefined;} ChromeProcessHelper.prototype={get pid(){return this.process.pid;},isTelemetryInternalEvent(slice){if(this.telemetryInternalRanges_===undefined){this.findTelemetryInternalRanges_();} @@ -4762,33 +4493,18 @@ return process.findAllThreadsNamed('CrGpuMain').length>0;};ChromeGpuHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype};return{ChromeGpuHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){const NET_CATEGORIES=new Set(['net','netlog','disabled-by-default-netlog','disabled-by-default-network']);class ChromeThreadHelper{constructor(thread){this.thread=thread;} getNetworkEvents(){const networkEvents=[];for(const slice of this.thread.asyncSliceGroup.slices){const categories=tr.b.getCategoryParts(slice.category);const isNetEvent=category=>NET_CATEGORIES.has(category);if(categories.filter(isNetEvent).length===0)continue;networkEvents.push(slice);} return networkEvents;}} -return{ChromeThreadHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){const ChromeThreadHelper=tr.model.helpers.ChromeThreadHelper;function ChromeRendererHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);this.mainThread_=process.findAtMostOneThreadNamed('CrRendererMain')||process.findAtMostOneThreadNamed('Chrome_InProcRendererThread');this.compositorThread_=process.findAtMostOneThreadNamed('Compositor');this.rasterWorkerThreads_=process.findAllThreadsMatching(function(t){if(t.name===undefined)return false;if(t.name.startsWith('CompositorTileWorker'))return true;if(t.name.startsWith('CompositorRasterWorker'))return true;return false;});this.dedicatedWorkerThreads_=process.findAllThreadsMatching(function(t){return t.name&&t.name.startsWith('DedicatedWorker');});this.foregroundWorkerThreads_=process.findAllThreadsMatching(function(t){return t.name&&t.name.startsWith('ThreadPoolForegroundWorker');});if(!process.name){process.name=ChromeRendererHelper.PROCESS_NAME;}} -ChromeRendererHelper.PROCESS_NAME='Renderer';ChromeRendererHelper.isRenderProcess=function(process){if(process.findAtMostOneThreadNamed('CrRendererMain'))return true;if(process.findAtMostOneThreadNamed('Compositor'))return true;return false;};ChromeRendererHelper.isTracingProcess=function(process){return process.labels!==undefined&&process.labels.length===1&&process.labels[0]==='chrome://tracing';};ChromeRendererHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype,get mainThread(){return this.mainThread_;},get compositorThread(){return this.compositorThread_;},get rasterWorkerThreads(){return this.rasterWorkerThreads_;},get dedicatedWorkerThreads(){return this.dedicatedWorkerThreads_;},get foregroundWorkerThreads(){return this.foregroundWorkerThreads_;},get isChromeTracingUI(){return ChromeRendererHelper.isTracingProcess(this.process);},};return{ChromeRendererHelper,};});'use strict';tr.exportTo('tr.model.um',function(){class Segment extends tr.model.TimedEvent{constructor(start,duration){super(start);this.duration=duration;this.expectations_=[];} -get expectations(){return this.expectations_;} -clone(){const clone=new Segment(this.start,this.duration);clone.expectations.push(...this.expectations);return clone;} -addSegment(other){this.duration+=other.duration;this.expectations.push(...other.expectations);}} -return{Segment,};});'use strict';tr.exportTo('tr.model.helpers',function(){const GESTURE_EVENT='SyntheticGestureController::running';const IR_REG_EXP=/Interaction\.([^/]+)(\/[^/]*)?$/;const ChromeRendererHelper=tr.model.helpers.ChromeRendererHelper;class TelemetryHelper{constructor(modelHelper){this.modelHelper=modelHelper;this.renderersWithIR_=undefined;this.irSegments_=undefined;this.uiSegments_=undefined;this.animationSegments_=undefined;} -get renderersWithIR(){this.findIRs_();return this.renderersWithIR_;} -get irSegments(){this.findIRs_();return this.irSegments_;} -get uiSegments(){this.findIRs_();return this.uiSegments_;} -get animationSegments(){if(this.animationSegments_===undefined){const model=this.modelHelper.model;this.animationSegments_=model.userModel.segments.filter(segment=>segment.expectations.find(ue=>ue instanceof tr.model.um.AnimationExpectation));this.animationSegments_.sort((x,y)=>x.start-y.start);} -return this.animationSegments_;} -findIRs_(){if(this.irSegments_!==undefined)return;this.renderersWithIR_=[];const gestureEvents=[];const interactionRecords=[];const processes=Object.values(this.modelHelper.rendererHelpers).concat(this.modelHelper.browserHelpers).map(processHelper=>processHelper.process);for(const process of processes){let foundIR=false;for(const thread of Object.values(process.threads)){for(const slice of thread.asyncSliceGroup.slices){if(slice.title===GESTURE_EVENT){gestureEvents.push(slice);}else if(IR_REG_EXP.test(slice.title)){interactionRecords.push(slice);foundIR=true;}}} -if(foundIR&&ChromeRendererHelper.isRenderProcess(process)&&!ChromeRendererHelper.isTracingProcess(process)){this.renderersWithIR_.push(new ChromeRendererHelper(this.modelHelper,process));}} -this.irSegments_=[];this.uiSegments_=[];for(const ir of interactionRecords){const parts=IR_REG_EXP.exec(ir.title);let gestureEventFound=false;if(parts[1].startsWith('Gesture_')){for(const gestureEvent of gestureEvents){if(ir.boundsRange.intersectsRangeInclusive(gestureEvent.boundsRange)){this.irSegments_.push(new tr.model.um.Segment(gestureEvent.start,gestureEvent.duration));gestureEventFound=true;break;}}}else if(parts[1].startsWith('ui_')){this.uiSegments_.push(new tr.model.um.Segment(ir.start,ir.duration));} -if(!gestureEventFound){this.irSegments_.push(new tr.model.um.Segment(ir.start,ir.duration));}} -this.irSegments_.sort((x,y)=>x.start-y.start);this.uiSegments_.sort((x,y)=>x.start-y.start);}} -return{TelemetryHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){function findChromeBrowserProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeBrowserHelper.isBrowserProcess);} +return{ChromeThreadHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){const ChromeThreadHelper=tr.model.helpers.ChromeThreadHelper;function ChromeRendererHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);this.mainThread_=process.findAtMostOneThreadNamed('CrRendererMain')||process.findAtMostOneThreadNamed('Chrome_InProcRendererThread');this.compositorThread_=process.findAtMostOneThreadNamed('Compositor');this.rasterWorkerThreads_=process.findAllThreadsMatching(function(t){if(t.name===undefined)return false;if(t.name.indexOf('CompositorTileWorker')===0)return true;if(t.name.indexOf('CompositorRasterWorker')===0)return true;return false;});if(!process.name){process.name=ChromeRendererHelper.PROCESS_NAME;}} +ChromeRendererHelper.PROCESS_NAME='Renderer';ChromeRendererHelper.isRenderProcess=function(process){if(process.findAtMostOneThreadNamed('CrRendererMain'))return true;if(process.findAtMostOneThreadNamed('Compositor'))return true;return false;};ChromeRendererHelper.isTracingProcess=function(process){return process.labels!==undefined&&process.labels.length===1&&process.labels[0]==='chrome://tracing';};ChromeRendererHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype,get mainThread(){return this.mainThread_;},get compositorThread(){return this.compositorThread_;},get rasterWorkerThreads(){return this.rasterWorkerThreads_;},get isChromeTracingUI(){return ChromeRendererHelper.isTracingProcess(this.process);},};return{ChromeRendererHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){function findChromeBrowserProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeBrowserHelper.isBrowserProcess);} function findChromeRenderProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeRendererHelper.isRenderProcess);} function findChromeGpuProcess(model){const gpuProcesses=model.getAllProcesses(tr.model.helpers.ChromeGpuHelper.isGpuProcess);if(gpuProcesses.length!==1)return undefined;return gpuProcesses[0];} -function findTelemetrySurfaceFlingerProcess(model){const surfaceFlingerProcesses=model.getAllProcesses(process=>(process.name==='SurfaceFlinger'));if(surfaceFlingerProcesses.length!==1)return undefined;return surfaceFlingerProcesses[0];} function ChromeModelHelper(model){this.model_=model;const browserProcesses=findChromeBrowserProcesses(model);this.browserHelpers_=browserProcesses.map(p=>new tr.model.helpers.ChromeBrowserHelper(this,p));const gpuProcess=findChromeGpuProcess(model);if(gpuProcess){this.gpuHelper_=new tr.model.helpers.ChromeGpuHelper(this,gpuProcess);}else{this.gpuHelper_=undefined;} -const rendererProcesses_=findChromeRenderProcesses(model);this.rendererHelpers_={};rendererProcesses_.forEach(function(renderProcess){const rendererHelper=new tr.model.helpers.ChromeRendererHelper(this,renderProcess);this.rendererHelpers_[rendererHelper.pid]=rendererHelper;},this);this.surfaceFlingerProcess_=findTelemetrySurfaceFlingerProcess(model);this.chromeBounds_=undefined;this.telemetryHelper_=new tr.model.helpers.TelemetryHelper(this);} -ChromeModelHelper.guid=tr.b.GUID.allocateSimple();ChromeModelHelper.supportsModel=function(model){if(findChromeBrowserProcesses(model).length)return true;if(findChromeRenderProcesses(model).length)return true;return false;};ChromeModelHelper.prototype={get pid(){throw new Error('woah');},get process(){throw new Error('woah');},get model(){return this.model_;},get browserProcess(){if(this.browserHelper===undefined)return undefined;return this.browserHelper.process;},get browserHelper(){return this.browserHelpers_[0];},get browserHelpers(){return this.browserHelpers_;},get gpuHelper(){return this.gpuHelper_;},get rendererHelpers(){return this.rendererHelpers_;},get surfaceFlingerProcess(){return this.surfaceFlingerProcess_;},get chromeBounds(){if(!this.chromeBounds_){this.chromeBounds_=new tr.b.math.Range();for(const browserHelper of Object.values(this.browserHelpers)){this.chromeBounds_.addRange(browserHelper.process.bounds);} +const rendererProcesses_=findChromeRenderProcesses(model);this.rendererHelpers_={};rendererProcesses_.forEach(function(renderProcess){const rendererHelper=new tr.model.helpers.ChromeRendererHelper(this,renderProcess);this.rendererHelpers_[rendererHelper.pid]=rendererHelper;},this);this.chromeBounds_=undefined;} +ChromeModelHelper.guid=tr.b.GUID.allocateSimple();ChromeModelHelper.supportsModel=function(model){if(findChromeBrowserProcesses(model).length)return true;if(findChromeRenderProcesses(model).length)return true;return false;};ChromeModelHelper.prototype={get pid(){throw new Error('woah');},get process(){throw new Error('woah');},get model(){return this.model_;},get browserProcess(){if(this.browserHelper===undefined)return undefined;return this.browserHelper.process;},get browserHelper(){return this.browserHelpers_[0];},get browserHelpers(){return this.browserHelpers_;},get gpuHelper(){return this.gpuHelper_;},get rendererHelpers(){return this.rendererHelpers_;},get rendererWithLargestPid(){let largestPid=-1;for(const pid in this.rendererHelpers){const rendererHelper=this.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI)continue;if(pid>largestPid)largestPid=pid;} +if(largestPid===-1)return undefined;return this.rendererHelpers[largestPid];},get chromeBounds(){if(!this.chromeBounds_){this.chromeBounds_=new tr.b.math.Range();for(const browserHelper of Object.values(this.browserHelpers)){this.chromeBounds_.addRange(browserHelper.process.bounds);} for(const rendererHelper of Object.values(this.rendererHelpers)){this.chromeBounds_.addRange(rendererHelper.process.bounds);} if(this.gpuHelper){this.chromeBounds_.addRange(this.gpuHelper.process.bounds);}} if(this.chromeBounds_.isEmpty){return undefined;} -return this.chromeBounds_;},get telemetryHelper(){return this.telemetryHelper_;}};return{ChromeModelHelper,};});'use strict';tr.exportTo('tr.e.cc',function(){const AsyncSlice=tr.model.AsyncSlice;const EventSet=tr.model.EventSet;const UI_COMP_NAME='INPUT_EVENT_LATENCY_UI_COMPONENT';const ORIGINAL_COMP_NAME='INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT';const BEGIN_COMP_NAME='INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT';const END_COMP_NAME='INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT';const LEGACY_END_COMP_NAME='INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT';const MAIN_RENDERER_THREAD_NAME='CrRendererMain';const COMPOSITOR_THREAD_NAME='Compositor';const POSTTASK_FLOW_EVENT='disabled-by-default-toplevel.flow';const IPC_FLOW_EVENT='disabled-by-default-ipc.flow';const INPUT_EVENT_TYPE_NAMES={CHAR:'Char',CLICK:'GestureClick',CONTEXT_MENU:'ContextMenu',FLING_CANCEL:'GestureFlingCancel',FLING_START:'GestureFlingStart',KEY_DOWN:'KeyDown',KEY_DOWN_RAW:'RawKeyDown',KEY_UP:'KeyUp',LATENCY_SCROLL_UPDATE:'ScrollUpdate',MOUSE_DOWN:'MouseDown',MOUSE_ENTER:'MouseEnter',MOUSE_LEAVE:'MouseLeave',MOUSE_MOVE:'MouseMove',MOUSE_UP:'MouseUp',MOUSE_WHEEL:'MouseWheel',PINCH_BEGIN:'GesturePinchBegin',PINCH_END:'GesturePinchEnd',PINCH_UPDATE:'GesturePinchUpdate',SCROLL_BEGIN:'GestureScrollBegin',SCROLL_END:'GestureScrollEnd',SCROLL_UPDATE:'GestureScrollUpdate',SCROLL_UPDATE_RENDERER:'ScrollUpdate',SHOW_PRESS:'GestureShowPress',TAP:'GestureTap',TAP_CANCEL:'GestureTapCancel',TAP_DOWN:'GestureTapDown',TOUCH_CANCEL:'TouchCancel',TOUCH_END:'TouchEnd',TOUCH_MOVE:'TouchMove',TOUCH_START:'TouchStart',UNKNOWN:'UNKNOWN'};function InputLatencyAsyncSlice(){AsyncSlice.apply(this,arguments);this.associatedEvents_=new EventSet();this.typeName_=undefined;if(!this.isLegacyEvent){this.determineModernTypeName_();}} +return this.chromeBounds_;}};return{ChromeModelHelper,};});'use strict';tr.exportTo('tr.e.cc',function(){const AsyncSlice=tr.model.AsyncSlice;const EventSet=tr.model.EventSet;const UI_COMP_NAME='INPUT_EVENT_LATENCY_UI_COMPONENT';const ORIGINAL_COMP_NAME='INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT';const BEGIN_COMP_NAME='INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT';const END_COMP_NAME='INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT';const MAIN_RENDERER_THREAD_NAME='CrRendererMain';const COMPOSITOR_THREAD_NAME='Compositor';const POSTTASK_FLOW_EVENT='disabled-by-default-toplevel.flow';const IPC_FLOW_EVENT='disabled-by-default-ipc.flow';const INPUT_EVENT_TYPE_NAMES={CHAR:'Char',CLICK:'GestureClick',CONTEXT_MENU:'ContextMenu',FLING_CANCEL:'GestureFlingCancel',FLING_START:'GestureFlingStart',KEY_DOWN:'KeyDown',KEY_DOWN_RAW:'RawKeyDown',KEY_UP:'KeyUp',LATENCY_SCROLL_UPDATE:'ScrollUpdate',MOUSE_DOWN:'MouseDown',MOUSE_ENTER:'MouseEnter',MOUSE_LEAVE:'MouseLeave',MOUSE_MOVE:'MouseMove',MOUSE_UP:'MouseUp',MOUSE_WHEEL:'MouseWheel',PINCH_BEGIN:'GesturePinchBegin',PINCH_END:'GesturePinchEnd',PINCH_UPDATE:'GesturePinchUpdate',SCROLL_BEGIN:'GestureScrollBegin',SCROLL_END:'GestureScrollEnd',SCROLL_UPDATE:'GestureScrollUpdate',SCROLL_UPDATE_RENDERER:'ScrollUpdate',SHOW_PRESS:'GestureShowPress',TAP:'GestureTap',TAP_CANCEL:'GestureTapCancel',TAP_DOWN:'GestureTapDown',TOUCH_CANCEL:'TouchCancel',TOUCH_END:'TouchEnd',TOUCH_MOVE:'TouchMove',TOUCH_START:'TouchStart',UNKNOWN:'UNKNOWN'};function InputLatencyAsyncSlice(){AsyncSlice.apply(this,arguments);this.associatedEvents_=new EventSet();this.typeName_=undefined;if(!this.isLegacyEvent){this.determineModernTypeName_();}} InputLatencyAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get isLegacyEvent(){return this.title==='InputLatency';},get typeName(){if(!this.typeName_){this.determineLegacyTypeName_();} return this.typeName_;},checkTypeName_(){if(!this.typeName_){throw new Error('Unable to determine typeName');} let found=false;for(const typeName in INPUT_EVENT_TYPE_NAMES){if(this.typeName===INPUT_EVENT_TYPE_NAMES[typeName]){found=true;break;}} @@ -4817,18 +4533,19 @@ const COMPOSITOR_ON_BIFD='Scheduler::OnBeginImplFrameDeadline';beginImplFrame=event.findDescendentSlice(COMPOSITOR_ON_BIFD);if(beginImplFrame){this.backtraceFromDraw(beginImplFrame,visitedEvents);}} const INPUT_GSU='InputLatency::GestureScrollUpdate';if(this.title===INPUT_GSU){this.addScrollUpdateEvents(rendererHelper);}},get associatedEvents(){if(this.associatedEvents_.length!==0){return this.associatedEvents_;} const modelIndices=this.startThread.parent.model.modelIndices;const flowEvents=modelIndices.getFlowEventsWithId(this.id);if(flowEvents.length===0){return this.associatedEvents_;} -const sourceSlices=this.addDirectlyAssociatedEvents(flowEvents);const rendererHelper=this.getRendererHelper(sourceSlices);this.addOtherCausallyRelatedEvents(rendererHelper,sourceSlices,flowEvents);return this.associatedEvents_;},get inputLatency(){if(!('data'in this.args))return undefined;const data=this.args.data;const endTimeComp=data[END_COMP_NAME]||data[LEGACY_END_COMP_NAME];if(endTimeComp===undefined)return undefined;let latency=0;const endTime=endTimeComp.time;if(ORIGINAL_COMP_NAME in data){latency=endTime-data[ORIGINAL_COMP_NAME].time;}else if(UI_COMP_NAME in data){latency=endTime-data[UI_COMP_NAME].time;}else if(BEGIN_COMP_NAME in data){latency=endTime-data[BEGIN_COMP_NAME].time;}else{throw new Error('No valid begin latency component');} -return latency;}};const eventTypeNames=['Char','ContextMenu','GestureClick','GestureFlingCancel','GestureFlingStart','GestureScrollBegin','GestureScrollEnd','GestureScrollUpdate','GestureShowPress','GestureTap','GestureTapCancel','GestureTapDown','GesturePinchBegin','GesturePinchEnd','GesturePinchUpdate','KeyDown','KeyUp','MouseDown','MouseEnter','MouseLeave','MouseMove','MouseUp','MouseWheel','RawKeyDown','ScrollUpdate','TouchCancel','TouchEnd','TouchMove','TouchStart'];const allTypeNames=['InputLatency'];eventTypeNames.forEach(function(eventTypeName){allTypeNames.push('InputLatency:'+eventTypeName);allTypeNames.push('InputLatency::'+eventTypeName);});AsyncSlice.subTypes.register(InputLatencyAsyncSlice,{typeNames:allTypeNames,categoryParts:['latencyInfo']});return{InputLatencyAsyncSlice,INPUT_EVENT_TYPE_NAMES,};});'use strict';tr.exportTo('tr.e.chrome',function(){const SAME_AS_PARENT='same-as-parent';const TITLES_FOR_USER_FRIENDLY_CATEGORY={composite:['CompositingInputsUpdater::update','ThreadProxy::SetNeedsUpdateLayers','LayerTreeHost::DoUpdateLayers','LayerTreeHost::UpdateLayers::BuildPropertyTrees','LocalFrameView::pushPaintArtifactToCompositor','LocalFrameView::updateCompositedSelectionIfNeeded','LocalFrameView::RunCompositingLifecyclePhase','UpdateLayerTree',],gc:['minorGC','majorGC','MajorGC','MinorGC','V8.GCScavenger','V8.GCIncrementalMarking','V8.GCIdleNotification','V8.GCContext','V8.GCCompactor','V8GCController::traceDOMWrappers',],iframe_creation:['WebLocalFrameImpl::createChildframe',],imageDecode:['Decode Image','ImageFrameGenerator::decode','ImageFrameGenerator::decodeAndScale','ImageFrameGenerator::decodeToYUV','ImageResourceContent::updateImage',],input:['HitTest','ScrollableArea::scrollPositionChanged','EventHandler::handleMouseMoveEvent',],layout:['IntersectionObserverController::computeTrackedIntersectionObservations','LocalFrameView::invalidateTree','LocalFrameView::layout','LocalFrameView::performLayout','LocalFrameView::performPostLayoutTasks','LocalFrameView::performPreLayoutTasks','LocalFrameView::RunStyleAndLayoutCompositingPhases','Layout','PaintLayer::updateLayerPositionsAfterLayout','ResourceLoadPriorityOptimizer::updateAllImageResourcePriorities','WebViewImpl::updateAllLifecyclePhases','WebViewImpl::beginFrame',],parseHTML:['BackgroundHTMLParser::pumpTokenizer','BackgroundHTMLParser::sendTokensToMainThread','HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser','HTMLDocumentParser::documentElementAvailable','HTMLDocumentParser::notifyPendingTokenizedChunks','HTMLDocumentParser::processParsedChunkFromBackgroundParser','HTMLDocumentParser::processTokenizedChunkFromBackgroundParser','ParseHTML',],raster:['DisplayListRasterSource::PerformSolidColorAnalysis','Picture::Raster','RasterBufferImpl::Playback','RasterTask','RasterizerTaskImpl::RunOnWorkerThread','SkCanvas::drawImageRect()','SkCanvas::drawPicture()','SkCanvas::drawTextBlob()','TileTaskWorkerPool::PlaybackToMemory',],record:['Canvas2DLayerBridge::flushRecordingOnly','CompositingInputsUpdater::update','CompositingRequirementsUpdater::updateRecursive','ContentLayerDelegate::paintContents','DisplayItemList::Finalize','LocalFrameView::RunPaintLifecyclePhase','LocalFrameView::RunPrePaintLifecyclePhase','Paint','PaintController::commitNewDisplayItems','PaintLayerCompositor::updateIfNeededRecursive','Picture::Record','PictureLayer::Update',],style:['CSSParserImpl::parseStyleSheet.parse','CSSParserImpl::parseStyleSheet.tokenize','Document::rebuildLayoutTree','Document::recalcStyle','Document::updateActiveStyle','Document::updateStyle','Document::updateStyleInvalidationIfNeeded','LocalFrameView::updateStyleAndLayoutIfNeededRecursive','ParseAuthorStyleSheet','RuleSet::addRulesFromSheet','StyleElement::processStyleSheet','StyleEngine::createResolver','StyleEngine::updateActiveStyleSheets','StyleSheetContents::parseAuthorStyleSheet','UpdateLayoutTree',],script_parse_and_compile:['V8.CompileFullCode','V8.NewContext','V8.Parse','V8.ParseLazy','V8.RecompileSynchronous','V8.ScriptCompiler','v8.compile','v8.parseOnBackground',],script_execute:['EvaluateScript','FunctionCall','HTMLParserScriptRunner ExecuteScript','V8.Execute','V8.RunMicrotasks','V8.Task','WindowProxy::initialize','v8.callFunction','v8.run',],resource_loading:['RenderFrameImpl::didFinishDocumentLoad','RenderFrameImpl::didFinishLoad','Resource::appendData','ResourceDispatcher::OnReceivedData','ResourceDispatcher::OnReceivedResponse','ResourceDispatcher::OnRequestComplete','ResourceFetcher::requestResource','WebURLLoaderImpl::Context::Cancel','WebURLLoaderImpl::Context::OnCompletedRequest','WebURLLoaderImpl::Context::OnReceivedData','WebURLLoaderImpl::Context::OnReceivedRedirect','WebURLLoaderImpl::Context::OnReceivedResponse','WebURLLoaderImpl::Context::Start','WebURLLoaderImpl::loadAsynchronously','WebURLLoaderImpl::loadSynchronously','content::mojom::URLLoaderClient',],renderer_misc:['DecodeFont','ThreadState::completeSweep',],v8_runtime:[],[SAME_AS_PARENT]:['SyncChannel::Send',]};const COLOR_FOR_USER_FRIENDLY_CATEGORY=new tr.b.SinebowColorGenerator();const USER_FRIENDLY_CATEGORY_FOR_TITLE=new Map();for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){TITLES_FOR_USER_FRIENDLY_CATEGORY[category].forEach(function(title){USER_FRIENDLY_CATEGORY_FOR_TITLE.set(title,category);});} +const sourceSlices=this.addDirectlyAssociatedEvents(flowEvents);const rendererHelper=this.getRendererHelper(sourceSlices);this.addOtherCausallyRelatedEvents(rendererHelper,sourceSlices,flowEvents);return this.associatedEvents_;},get inputLatency(){if(!('data'in this.args))return undefined;const data=this.args.data;if(!(END_COMP_NAME in data))return undefined;let latency=0;const endTime=data[END_COMP_NAME].time;if(ORIGINAL_COMP_NAME in data){latency=endTime-data[ORIGINAL_COMP_NAME].time;}else if(UI_COMP_NAME in data){latency=endTime-data[UI_COMP_NAME].time;}else if(BEGIN_COMP_NAME in data){latency=endTime-data[BEGIN_COMP_NAME].time;}else{throw new Error('No valid begin latency component');} +return latency;}};const eventTypeNames=['Char','ContextMenu','GestureClick','GestureFlingCancel','GestureFlingStart','GestureScrollBegin','GestureScrollEnd','GestureScrollUpdate','GestureShowPress','GestureTap','GestureTapCancel','GestureTapDown','GesturePinchBegin','GesturePinchEnd','GesturePinchUpdate','KeyDown','KeyUp','MouseDown','MouseEnter','MouseLeave','MouseMove','MouseUp','MouseWheel','RawKeyDown','ScrollUpdate','TouchCancel','TouchEnd','TouchMove','TouchStart'];const allTypeNames=['InputLatency'];eventTypeNames.forEach(function(eventTypeName){allTypeNames.push('InputLatency:'+eventTypeName);allTypeNames.push('InputLatency::'+eventTypeName);});AsyncSlice.subTypes.register(InputLatencyAsyncSlice,{typeNames:allTypeNames,categoryParts:['latencyInfo']});return{InputLatencyAsyncSlice,INPUT_EVENT_TYPE_NAMES,};});'use strict';tr.exportTo('tr.b',function(){function SinebowColorGenerator(opt_a,opt_brightness){this.a_=(opt_a===undefined)?1:opt_a;this.brightness_=(opt_brightness===undefined)?1:opt_brightness;this.colorIndex_=0;this.keyToColor={};} +SinebowColorGenerator.prototype={colorForKey(key){if(!this.keyToColor[key]){this.keyToColor[key]=this.nextColor();} +return this.keyToColor[key];},nextColor(){const components=SinebowColorGenerator.nthColor(this.colorIndex_++);return tr.b.Color.fromString(SinebowColorGenerator.calculateColor(components[0],components[1],components[2],this.a_,this.brightness_));}};SinebowColorGenerator.PHI=(1+Math.sqrt(5))/2;SinebowColorGenerator.sinebow_=function(h){h+=0.5;h=-h;let r=Math.sin(Math.PI*h);let g=Math.sin(Math.PI*(h+1/3));let b=Math.sin(Math.PI*(h+2/3));r*=r;g*=g;b*=b;const y=2*(0.2989*r+0.5870*g+0.1140*b);r/=y;g/=y;b/=y;return[256*r,256*g,256*b];};SinebowColorGenerator.nthColor=function(n){return SinebowColorGenerator.sinebow_(n*this.PHI);};SinebowColorGenerator.calculateColor=function(r,g,b,a,brightness){if(brightness<=1){r*=brightness;g*=brightness;b*=brightness;}else{r=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),r,255);g=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),g,255);b=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),b,255);} +r=Math.round(r);g=Math.round(g);b=Math.round(b);return'rgba('+r+','+g+','+b+', '+a+')';};return{SinebowColorGenerator,};});'use strict';tr.exportTo('tr.e.chrome',function(){const SAME_AS_PARENT='same-as-parent';const TITLES_FOR_USER_FRIENDLY_CATEGORY={composite:['CompositingInputsUpdater::update','ThreadProxy::SetNeedsUpdateLayers','LayerTreeHost::UpdateLayers::CalcDrawProps','UpdateLayerTree',],gc:['minorGC','majorGC','MajorGC','MinorGC','V8.GCScavenger','V8.GCIncrementalMarking','V8.GCIdleNotification','V8.GCContext','V8.GCCompactor','V8GCController::traceDOMWrappers',],iframe_creation:['WebLocalFrameImpl::createChildframe',],imageDecode:['Decode Image','ImageFrameGenerator::decode','ImageFrameGenerator::decodeAndScale','ImageResourceContent::updateImage',],input:['HitTest','ScrollableArea::scrollPositionChanged','EventHandler::handleMouseMoveEvent',],layout:['DisplayItemList::Finalize','IntersectionObserverController::computeTrackedIntersectionObservations','LocalFrameView::invalidateTree','LocalFrameView::layout','LocalFrameView::performLayout','LocalFrameView::performPostLayoutTasks','LocalFrameView::performPreLayoutTasks','FrameView::invalidateTree','FrameView::layout','FrameView::performLayout','FrameView::performPostLayoutTasks','FrameView::performPreLayoutTasks','Layer::updateLayerPositionsAfterLayout','LayerTreeHostInProcess::UpdateLayers::BuildPropertyTrees','Layout','LayoutView::hitTest','PaintLayer::updateLayerPositionsAfterLayout','ResourceLoadPriorityOptimizer::updateAllImageResourcePriorities','WebViewImpl::layout',],parseHTML:['BackgroundHTMLParser::pumpTokenizer','BackgroundHTMLParser::sendTokensToMainThread','HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser','HTMLDocumentParser::documentElementAvailable','HTMLDocumentParser::notifyPendingTokenizedChunks','HTMLDocumentParser::processParsedChunkFromBackgroundParser','HTMLDocumentParser::processTokenizedChunkFromBackgroundParser','ParseHTML',],raster:['DisplayListRasterSource::PerformSolidColorAnalysis','Picture::Raster','RasterBufferImpl::Playback','RasterTask','RasterizerTaskImpl::RunOnWorkerThread','SkCanvas::drawImageRect()','SkCanvas::drawPicture()','SkCanvas::drawTextBlob()','TileTaskWorkerPool::PlaybackToMemory',],record:['Canvas2DLayerBridge::flushRecordingOnly','CompositingRequirementsUpdater::updateRecursive','ContentLayerDelegate::paintContents','DeprecatedPaintLayerCompositor::updateIfNeededRecursive','DeprecatedPaintLayerCompositor::updateLayerPositionsAfterLayout','LocalFrameView::paintTree','LocalFrameView::prePaint','Paint','PaintController::commitNewDisplayItems','PaintLayerCompositor::updateIfNeededRecursive','Picture::Record','PictureLayer::Update','RenderLayer::updateLayerPositionsAfterLayout',],style:['CSSParserImpl::parseStyleSheet.parse','CSSParserImpl::parseStyleSheet.tokenize','Document::rebuildLayoutTree','Document::recalcStyle','Document::updateActiveStyle','Document::updateStyle','Document::updateStyleInvalidationIfNeeded','LocalFrameView::updateStyleAndLayoutIfNeededRecursive','ParseAuthorStyleSheet','RuleSet::addRulesFromSheet','StyleElement::processStyleSheet','StyleEngine::createResolver','StyleEngine::updateActiveStyleSheets','StyleSheetContents::parseAuthorStyleSheet','UpdateLayoutTree',],script_parse_and_compile:['V8.CompileFullCode','V8.NewContext','V8.Parse','V8.ParseLazy','V8.RecompileSynchronous','V8.ScriptCompiler','v8.compile','v8.parseOnBackground',],script_execute:['EvaluateScript','FunctionCall','HTMLParserScriptRunner ExecuteScript','V8.Execute','V8.RunMicrotasks','V8.Task','WindowProxy::initialize','v8.callFunction','v8.run',],resource_loading:['RenderFrameImpl::didFinishDocumentLoad','RenderFrameImpl::didFinishLoad','Resource::appendData','ResourceDispatcher::OnReceivedData','ResourceDispatcher::OnReceivedResponse','ResourceDispatcher::OnRequestComplete','ResourceFetcher::requestResource','WebURLLoaderImpl::Context::Cancel','WebURLLoaderImpl::Context::OnCompletedRequest','WebURLLoaderImpl::Context::OnReceivedData','WebURLLoaderImpl::Context::OnReceivedRedirect','WebURLLoaderImpl::Context::OnReceivedResponse','WebURLLoaderImpl::Context::Start','WebURLLoaderImpl::loadAsynchronously','WebURLLoaderImpl::loadSynchronously','content::mojom::URLLoaderClient',],renderer_misc:['DecodeFont','ThreadState::completeSweep',],v8_runtime:[],[SAME_AS_PARENT]:['SyncChannel::Send',]};const COLOR_FOR_USER_FRIENDLY_CATEGORY=new tr.b.SinebowColorGenerator();const USER_FRIENDLY_CATEGORY_FOR_TITLE=new Map();for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){TITLES_FOR_USER_FRIENDLY_CATEGORY[category].forEach(function(title){USER_FRIENDLY_CATEGORY_FOR_TITLE.set(title,category);});} const USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY={netlog:'net',overhead:'overhead',startup:'startup',gpu:'gpu',};function ChromeUserFriendlyCategoryDriver(){} ChromeUserFriendlyCategoryDriver.fromEvent=function(event){let userFriendlyCategory=USER_FRIENDLY_CATEGORY_FOR_TITLE.get(event.title);if(userFriendlyCategory){if(userFriendlyCategory===SAME_AS_PARENT){if(event.parentSlice){return ChromeUserFriendlyCategoryDriver.fromEvent(event.parentSlice);}}else{return userFriendlyCategory;}} const eventCategoryParts=tr.b.getCategoryParts(event.category);for(let i=0;i<eventCategoryParts.length;++i){const eventCategory=eventCategoryParts[i];userFriendlyCategory=USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY[eventCategory];if(userFriendlyCategory){return userFriendlyCategory;}} return'other';};ChromeUserFriendlyCategoryDriver.getColor=function(ufc){return COLOR_FOR_USER_FRIENDLY_CATEGORY.colorForKey(ufc);};ChromeUserFriendlyCategoryDriver.ALL_TITLES=['other'];for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){if(category===SAME_AS_PARENT)continue;ChromeUserFriendlyCategoryDriver.ALL_TITLES.push(category);} for(const category of Object.values(USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY)){ChromeUserFriendlyCategoryDriver.ALL_TITLES.push(category);} ChromeUserFriendlyCategoryDriver.ALL_TITLES.sort();for(const category of ChromeUserFriendlyCategoryDriver.ALL_TITLES){ChromeUserFriendlyCategoryDriver.getColor(category);} -return{ChromeUserFriendlyCategoryDriver,};});'use strict';tr.exportTo('tr.model',function(){return{BROWSER_PROCESS_PID_REF:-1,OBJECT_DEFAULT_SCOPE:'ptr',LOCAL_ID_PHASES:new Set(['N','D','O','(',')'])};});'use strict';tr.exportTo('tr.e.audits',function(){const Auditor=tr.c.Auditor;const Alert=tr.model.Alert;const EventInfo=tr.model.EventInfo;function ChromeAuditor(model){Auditor.call(this,model);const modelHelper=this.model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper&&modelHelper.browserHelper){this.modelHelper=modelHelper;}else{this.modelHelper=undefined;}} -function getMissedFrameAlerts(rendererHelpers){const alerts=[];for(const rendererHelper of rendererHelpers){if(!rendererHelper.compositorThread)continue;const thread=rendererHelper.compositorThread;const asyncSlices=Object.values(thread.asyncSliceGroup.slices);for(const slice of asyncSlices){if(slice.title!=='PipelineReporter'||!slice.args.termination_status||slice.args.termination_status!=='missed_frame')continue;const alertSlices=[slice].concat(slice.subSlices);alerts.push(new Alert(new EventInfo('Missed Frame','Frame was not submitted before deadline.'),slice.start,alertSlices));}} -return alerts;} -ChromeAuditor.prototype={__proto__:Auditor.prototype,runAnnotate(){if(!this.modelHelper)return;for(const pid in this.modelHelper.rendererHelpers){const rendererHelper=this.modelHelper.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI){rendererHelper.process.important=false;}}},installUserFriendlyCategoryDriverIfNeeded(){this.model.addUserFriendlyCategoryDriver(tr.e.chrome.ChromeUserFriendlyCategoryDriver);},runAudit(){if(!this.modelHelper)return;this.model.replacePIDRefsInPatchups(tr.model.BROWSER_PROCESS_PID_REF,this.modelHelper.browserProcess.pid);this.model.applyObjectRefPatchups();const alerts=getMissedFrameAlerts(Object.values(this.modelHelper.rendererHelpers));this.model.alerts=this.model.alerts.concat(alerts);}};Auditor.register(ChromeAuditor);return{ChromeAuditor,};});'use strict';tr.exportTo('tr.e.chrome',function(){const KNOWN_PROPERTIES={absX:1,absY:1,address:1,anonymous:1,childNeeds:1,children:1,classNames:1,col:1,colSpan:1,float:1,height:1,htmlId:1,name:1,posChildNeeds:1,positioned:1,positionedMovement:1,relX:1,relY:1,relativePositioned:1,row:1,rowSpan:1,selfNeeds:1,stickyPositioned:1,tag:1,width:1};function LayoutObject(snapshot,args){this.snapshot_=snapshot;this.id_=args.address;this.name_=args.name;this.childLayoutObjects_=[];this.otherProperties_={};this.tag_=args.tag;this.relativeRect_=tr.b.math.Rect.fromXYWH(args.relX,args.relY,args.width,args.height);this.absoluteRect_=tr.b.math.Rect.fromXYWH(args.absX,args.absY,args.width,args.height);this.isFloat_=args.float;this.isStickyPositioned_=args.stickyPositioned;this.isPositioned_=args.positioned;this.isRelativePositioned_=args.relativePositioned;this.isAnonymous_=args.anonymous;this.htmlId_=args.htmlId;this.classNames_=args.classNames;this.needsLayoutReasons_=[];if(args.selfNeeds){this.needsLayoutReasons_.push('self');} +return{ChromeUserFriendlyCategoryDriver,};});'use strict';tr.exportTo('tr.model',function(){return{BROWSER_PROCESS_PID_REF:-1,OBJECT_DEFAULT_SCOPE:'ptr',LOCAL_ID_PHASES:new Set(['N','D','O','(',')'])};});'use strict';tr.exportTo('tr.e.audits',function(){const Auditor=tr.c.Auditor;function ChromeAuditor(model){Auditor.call(this,model);const modelHelper=this.model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper&&modelHelper.browserHelper){this.modelHelper=modelHelper;}else{this.modelHelper=undefined;}} +ChromeAuditor.prototype={__proto__:Auditor.prototype,runAnnotate(){if(!this.modelHelper)return;for(const pid in this.modelHelper.rendererHelpers){const rendererHelper=this.modelHelper.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI){rendererHelper.process.important=false;}}},installUserFriendlyCategoryDriverIfNeeded(){this.model.addUserFriendlyCategoryDriver(tr.e.chrome.ChromeUserFriendlyCategoryDriver);},runAudit(){if(!this.modelHelper)return;this.model.replacePIDRefsInPatchups(tr.model.BROWSER_PROCESS_PID_REF,this.modelHelper.browserProcess.pid);this.model.applyObjectRefPatchups();}};Auditor.register(ChromeAuditor);return{ChromeAuditor,};});'use strict';tr.exportTo('tr.e.chrome',function(){const KNOWN_PROPERTIES={absX:1,absY:1,address:1,anonymous:1,childNeeds:1,children:1,classNames:1,col:1,colSpan:1,float:1,height:1,htmlId:1,name:1,posChildNeeds:1,positioned:1,positionedMovement:1,relX:1,relY:1,relativePositioned:1,row:1,rowSpan:1,selfNeeds:1,stickyPositioned:1,tag:1,width:1};function LayoutObject(snapshot,args){this.snapshot_=snapshot;this.id_=args.address;this.name_=args.name;this.childLayoutObjects_=[];this.otherProperties_={};this.tag_=args.tag;this.relativeRect_=tr.b.math.Rect.fromXYWH(args.relX,args.relY,args.width,args.height);this.absoluteRect_=tr.b.math.Rect.fromXYWH(args.absX,args.absY,args.width,args.height);this.isFloat_=args.float;this.isStickyPositioned_=args.stickyPositioned;this.isPositioned_=args.positioned;this.isRelativePositioned_=args.relativePositioned;this.isAnonymous_=args.anonymous;this.htmlId_=args.htmlId;this.classNames_=args.classNames;this.needsLayoutReasons_=[];if(args.selfNeeds){this.needsLayoutReasons_.push('self');} if(args.childNeeds){this.needsLayoutReasons_.push('child');} if(args.posChildNeeds){this.needsLayoutReasons_.push('positionedChild');} if(args.positionedMovement){this.needsLayoutReasons_.push('positionedMovement');} @@ -4838,8 +4555,7 @@ return names;},getProperty(name){return this.otherProperties_[name];},get previousSnapshotLayoutObject(){if(!this.snapshot.previousSnapshot)return undefined;return this.snapshot.previousSnapshot.getLayoutObjectById(this.id);},get nextSnapshotLayoutObject(){if(!this.snapshot.nextSnapshot)return undefined;return this.snapshot.nextSnapshot.getLayoutObjectById(this.id);}};return{LayoutObject,};});'use strict';tr.exportTo('tr.e.chrome',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;const ObjectInstance=tr.model.ObjectInstance;function LayoutTreeInstance(){ObjectInstance.apply(this,arguments);} LayoutTreeInstance.prototype={__proto__:ObjectInstance.prototype,};ObjectInstance.subTypes.register(LayoutTreeInstance,{typeName:'LayoutTree'});function LayoutTreeSnapshot(){ObjectSnapshot.apply(this,arguments);this.rootLayoutObject=new tr.e.chrome.LayoutObject(this,this.args);} LayoutTreeSnapshot.prototype={__proto__:ObjectSnapshot.prototype,};ObjectSnapshot.subTypes.register(LayoutTreeSnapshot,{typeName:'LayoutTree'});return{LayoutTreeInstance,LayoutTreeSnapshot,};});'use strict';tr.exportTo('tr.model',function(){function EventContainer(){this.guid_=tr.b.GUID.allocateSimple();this.important=true;this.bounds_=new tr.b.math.Range();} -EventContainer.prototype={get guid(){return this.guid_;},get stableId(){throw new Error('Not implemented');},get bounds(){return this.bounds_;},updateBounds(){throw new Error('Not implemented');},shiftTimestampsForward(amount){throw new Error('Not implemented');},*childEvents(){},*getDescendantEvents(){yield*this.childEvents();for(const container of this.childEventContainers()){yield*container.getDescendantEvents();}},*childEventContainers(){},*getDescendantEventContainers(){yield this;for(const container of this.childEventContainers()){yield*container.getDescendantEventContainers();}},*getDescendantEventsInSortedRanges(ranges,opt_containerPredicate){if(opt_containerPredicate===undefined||opt_containerPredicate(this)){for(const event of this.childEvents()){const i=tr.b.findFirstTrueIndexInSortedArray(ranges,range=>event.start<=range.max);if(i<ranges.length&&event.end>=ranges[i].min)yield event;}} -for(const container of this.childEventContainers()){yield*container.getDescendantEventsInSortedRanges(ranges,opt_containerPredicate);}},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){},*findTopmostSlices(eventPredicate){for(const ec of this.getDescendantEventContainers()){yield*ec.findTopmostSlicesInThisContainer(eventPredicate);}},*findTopmostSlicesNamed(name){yield*this.findTopmostSlices(e=>e.title===name);}};return{EventContainer,};});'use strict';tr.exportTo('tr.model',function(){const Event=tr.model.Event;const EventRegistry=tr.model.EventRegistry;class ResourceUsageSample extends Event{constructor(series,start,usage){super();this.series_=series;this.start_=start;this.usage_=usage;} +EventContainer.prototype={get guid(){return this.guid_;},get stableId(){throw new Error('Not implemented');},get bounds(){return this.bounds_;},updateBounds(){throw new Error('Not implemented');},shiftTimestampsForward(amount){throw new Error('Not implemented');},*childEvents(){},*getDescendantEvents(){yield*this.childEvents();for(const container of this.childEventContainers()){yield*container.getDescendantEvents();}},*childEventContainers(){},*getDescendantEventContainers(){yield this;for(const container of this.childEventContainers()){yield*container.getDescendantEventContainers();}},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){},*findTopmostSlices(eventPredicate){for(const ec of this.getDescendantEventContainers()){yield*ec.findTopmostSlicesInThisContainer(eventPredicate);}},*findTopmostSlicesNamed(name){yield*this.findTopmostSlices(e=>e.title===name);}};return{EventContainer,};});'use strict';tr.exportTo('tr.model',function(){const Event=tr.model.Event;const EventRegistry=tr.model.EventRegistry;class ResourceUsageSample extends Event{constructor(series,start,usage){super();this.series_=series;this.start_=start;this.usage_=usage;} get series(){return this.series_;} get start(){return this.start_;} set start(value){this.start_=value;} @@ -4891,12 +4607,10 @@ return{pageDirectoryBase,uniqueProcessKey,processId,parentId,sessionId,exitStatus,directoryTableBase,flags,userSID,imageFileName,commandLine,packageFullName,applicationId,exitTime};},decodeStart(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);if(process.hasOwnProperty('has_ended')){throw new Error('Process clash detected.');} process.name=fields.imageFileName;return true;},decodeEnd(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);process.has_ended=true;return true;},decodeDCStart(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);if(process.hasOwnProperty('has_ended')){throw new Error('Process clash detected.');} process.name=fields.imageFileName;return true;},decodeDCEnd(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);process.has_ended=true;return true;},decodeDefunct(header,decoder){const fields=this.decodeFields(header,decoder);return true;}};Parser.register(ProcessParser);return{ProcessParser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='3D6FA8D1-FE05-11D0-9DDA-00C04FD7BA7C';const kThreadStartOpcode=1;const kThreadEndOpcode=2;const kThreadDCStartOpcode=3;const kThreadDCEndOpcode=4;const kThreadCSwitchOpcode=36;function ThreadParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kThreadStartOpcode,ThreadParser.prototype.decodeStart.bind(this));importer.registerEventHandler(guid,kThreadEndOpcode,ThreadParser.prototype.decodeEnd.bind(this));importer.registerEventHandler(guid,kThreadDCStartOpcode,ThreadParser.prototype.decodeDCStart.bind(this));importer.registerEventHandler(guid,kThreadDCEndOpcode,ThreadParser.prototype.decodeDCEnd.bind(this));importer.registerEventHandler(guid,kThreadCSwitchOpcode,ThreadParser.prototype.decodeCSwitch.bind(this));} -ThreadParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version>3){throw new Error('Incompatible Thread event version '+ -header.version+'.');} +ThreadParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version>3){throw new Error('Incompatible Thread event version.');} const processId=decoder.decodeUInt32();const threadId=decoder.decodeUInt32();let stackBase;let stackLimit;let userStackBase;let userStackLimit;let affinity;let startAddr;let win32StartAddr;let tebBase;let subProcessTag;let basePriority;let pagePriority;let ioPriority;let threadFlags;let waitMode;if(header.version===1){if(header.opcode===kThreadStartOpcode||header.opcode===kThreadDCStartOpcode){stackBase=decoder.decodeUInteger(header.is64);stackLimit=decoder.decodeUInteger(header.is64);userStackBase=decoder.decodeUInteger(header.is64);userStackLimit=decoder.decodeUInteger(header.is64);startAddr=decoder.decodeUInteger(header.is64);win32StartAddr=decoder.decodeUInteger(header.is64);waitMode=decoder.decodeInt8();decoder.skip(3);}}else{stackBase=decoder.decodeUInteger(header.is64);stackLimit=decoder.decodeUInteger(header.is64);userStackBase=decoder.decodeUInteger(header.is64);userStackLimit=decoder.decodeUInteger(header.is64);if(header.version===2){startAddr=decoder.decodeUInteger(header.is64);}else{affinity=decoder.decodeUInteger(header.is64);} win32StartAddr=decoder.decodeUInteger(header.is64);tebBase=decoder.decodeUInteger(header.is64);subProcessTag=decoder.decodeUInt32();if(header.version===3){basePriority=decoder.decodeUInt8();pagePriority=decoder.decodeUInt8();ioPriority=decoder.decodeUInt8();threadFlags=decoder.decodeUInt8();}} -return{processId,threadId,stackBase,stackLimit,userStackBase,userStackLimit,affinity,startAddr,win32StartAddr,tebBase,subProcessTag,waitMode,basePriority,pagePriority,ioPriority,threadFlags};},decodeCSwitchFields(header,decoder){if(header.version<2||header.version>4){throw new Error('Incompatible cswitch event version '+ -header.version+'.');} +return{processId,threadId,stackBase,stackLimit,userStackBase,userStackLimit,affinity,startAddr,win32StartAddr,tebBase,subProcessTag,waitMode,basePriority,pagePriority,ioPriority,threadFlags};},decodeCSwitchFields(header,decoder){if(header.version!==2){throw new Error('Incompatible Thread event version.');} const newThreadId=decoder.decodeUInt32();const oldThreadId=decoder.decodeUInt32();const newThreadPriority=decoder.decodeInt8();const oldThreadPriority=decoder.decodeInt8();const previousCState=decoder.decodeUInt8();const spareByte=decoder.decodeInt8();const oldThreadWaitReason=decoder.decodeInt8();const oldThreadWaitMode=decoder.decodeInt8();const oldThreadState=decoder.decodeInt8();const oldThreadWaitIdealProcessor=decoder.decodeInt8();const newThreadWaitTime=decoder.decodeUInt32();const reserved=decoder.decodeUInt32();return{newThreadId,oldThreadId,newThreadPriority,oldThreadPriority,previousCState,spareByte,oldThreadWaitReason,oldThreadWaitMode,oldThreadState,oldThreadWaitIdealProcessor,newThreadWaitTime,reserved};},decodeStart(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.createThreadIfNeeded(fields.processId,fields.threadId);return true;},decodeEnd(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.removeThreadIfPresent(fields.threadId);return true;},decodeDCStart(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.createThreadIfNeeded(fields.processId,fields.threadId);return true;},decodeDCEnd(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.removeThreadIfPresent(fields.threadId);return true;},decodeCSwitch(header,decoder){const fields=this.decodeCSwitchFields(header,decoder);const cpu=this.importer.getOrCreateCpu(header.cpu);const newThread=this.importer.getThreadFromWindowsTid(fields.newThreadId);let newThreadName;if(newThread&&newThread.userFriendlyName){newThreadName=newThread.userFriendlyName;}else{const newProcessId=this.importer.getPidFromWindowsTid(fields.newThreadId);const newProcess=this.model.getProcess(newProcessId);let newProcessName;if(newProcess){newProcessName=newProcess.name;}else{newProcessName='Unknown process';} newThreadName=newProcessName+' (tid '+fields.newThreadId+')';} cpu.switchActiveThread(header.timestamp,{},fields.newThreadId,newThreadName,fields);return true;}};Parser.register(ThreadParser);return{ThreadParser,};});'use strict';tr.exportTo('tr.b',function(){function max(a,b){if(a===undefined)return b;if(b===undefined)return a;return Math.max(a,b);} @@ -4948,23 +4662,20 @@ function forceAllPendingTasksToRunForTest(){if(!rafScheduled&&!idleWorkScheduled)return;processRequests(true,0);} function timeout(ms){return new Promise(resolve=>window.setTimeout(resolve,ms));} function idle(){return new Promise(resolve=>requestIdleCallback(resolve));} -return{animationFrame,forceAllPendingTasksToRunForTest,forcePendingRAFTasksToRun,idle,onAnimationFrameError,requestAnimationFrame,requestAnimationFrameInThisFrameIfPossible,requestIdleCallback,requestPreAnimationFrame,timeout,};});'use strict';tr.exportTo('tr.b',function(){class Mark{constructor(groupName,functionName,opt_timestamp){if(tr.isHeadless)return;this.groupName_=groupName;this.functionName_=functionName;const guid=tr.b.GUID.allocateSimple();this.measureName_=`${groupName} ${functionName}`;if(opt_timestamp){this.startMark_={startTime:opt_timestamp};}else{this.startMarkName_=`${this.measureName} ${guid} start`;} -this.endMark_=undefined;this.endMarkName_=`${this.measureName} ${guid} end`;window.performance.mark(this.startMarkName_);} +return{animationFrame,forceAllPendingTasksToRunForTest,forcePendingRAFTasksToRun,idle,onAnimationFrameError,requestAnimationFrame,requestAnimationFrameInThisFrameIfPossible,requestIdleCallback,requestPreAnimationFrame,timeout,};});'use strict';tr.exportTo('tr.b',function(){class Mark{constructor(groupName,functionName){if(tr.isHeadless)return;this.groupName_=groupName;this.functionName_=functionName;const guid=tr.b.GUID.allocateSimple();this.measureName_=`${groupName} ${functionName}`;this.startMarkName_=`${this.measureName} ${guid} start`;this.endMarkName_=`${this.measureName} ${guid} end`;window.performance.mark(this.startMarkName_);} get groupName(){return this.groupName_;} get functionName(){return this.functionName_;} get measureName(){return this.measureName_;} -get startMark(){return this.startMark_||tr.b.getOnlyElement(window.performance.getEntriesByName(this.startMarkName_));} -get endMark(){return this.endMark_||tr.b.getOnlyElement(window.performance.getEntriesByName(this.endMarkName_));} +get startMark(){return tr.b.getOnlyElement(window.performance.getEntriesByName(this.startMarkName_));} +get endMark(){return tr.b.getOnlyElement(window.performance.getEntriesByName(this.endMarkName_));} get durationMs(){return this.endMark.startTime-this.startMark.startTime;} -end(opt_timestamp){if(tr.isHeadless)return;if(opt_timestamp){this.endMark_={startTime:opt_timestamp};}else{window.performance.mark(this.endMarkName_);} -if(!this.startMark_&&!this.endMark_){window.performance.measure(this.measureName_,this.startMarkName_,this.endMarkName_);}else if(Timing.logVoidMarks&&!(window.ga instanceof Function)){console.log('void mark',this.groupName,this.functionName,this.durationMs);} -if(!(window.ga instanceof Function))return;ga('send',{hitType:'event',eventCategory:this.groupName,eventAction:this.functionName,eventValue:this.durationMs,});}} -class Timing{static mark(groupName,functionName,opt_timestamp){return new Mark(groupName,functionName,opt_timestamp);} +end(){if(tr.isHeadless)return;window.performance.mark(this.endMarkName_);window.performance.measure(this.measureName_,this.startMarkName_,this.endMarkName_);if(!(window.ga instanceof Function))return;ga('send',{hitType:'event',eventCategory:this.groupName,eventAction:this.functionName,eventValue:this.durationMs,});}} +class Timing{static mark(groupName,functionName){return new Mark(groupName,functionName);} static instant(groupName,functionName,opt_value){const valueString=opt_value===undefined?'':' '+opt_value;if(console&&console.timeStamp){console.timeStamp(`${groupName} ${functionName}${valueString}`);} if(window&&window.ga instanceof Function){ga('send',{hitType:'event',eventCategory:groupName,eventAction:functionName,eventValue:opt_value,});}} static getCurrentTimeMs(){try{return performance.now();}catch(error){} return 0;}} -Timing.logVoidMarks=false;return{Timing,};});'use strict';tr.exportTo('tr.b',function(){const Timing=tr.b.Timing;function Task(runCb,thisArg){if(runCb!==undefined&&thisArg===undefined&&runCb.prototype!==undefined){throw new Error('Almost certainly you meant to pass a bound callback '+'or thisArg.');} +return{Timing,};});'use strict';tr.exportTo('tr.b',function(){const Timing=tr.b.Timing;function Task(runCb,thisArg){if(runCb!==undefined&&thisArg===undefined&&runCb.prototype!==undefined){throw new Error('Almost certainly you meant to pass a bound callback '+'or thisArg.');} this.runCb_=runCb;this.thisArg_=thisArg;this.afterTask_=undefined;this.subTasks_=[];this.updatesUi_=false;} Task.prototype={get name(){return this.runCb_.name;},set updatesUi(value){this.updatesUi_=value;},subTask(cb,thisArg){if(cb instanceof Task){this.subTasks_.push(cb);}else{this.subTasks_.push(new Task(cb,thisArg));} return this.subTasks_[this.subTasks_.length-1];},run(){if(this.runCb_!==undefined)this.runCb_.call(this.thisArg_,this);const subTasks=this.subTasks_;this.subTasks_=undefined;if(!subTasks.length)return this.afterTask_;for(let i=1;i<subTasks.length;i++){subTasks[i-1].afterTask_=subTasks[i];} @@ -4987,8 +4698,7 @@ const marker=new ClockSyncMarker(domainId,startTs,opt_endTs);if(!this.markersBySyncId_.has(syncId)){this.markersBySyncId_.set(syncId,[marker]);return;} const markers=this.markersBySyncId_.get(syncId);if(markers.length===2){throw new Error('Clock sync with ID "'+syncId+'" is already '+'complete - cannot add a third clock sync marker to it.');} if(markers[0].domainId===domainId){throw new Error('A clock domain cannot sync with itself.');} -markers.push(marker);this.onSyncCompleted_(markers[0],marker);},get completeSyncIds(){const completeSyncIds=[];for(const[syncId,markers]of this.markersBySyncId){if(markers.length===2)completeSyncIds.push(syncId);} -return completeSyncIds;},get markersBySyncId(){return this.markersBySyncId_;},get domainsSeen(){return this.domainsSeen_;},getModelTimeTransformer(domainId){this.onDomainSeen_(domainId);if(!this.modelDomainId_){this.selectModelDomainId_();} +markers.push(marker);this.onSyncCompleted_(markers[0],marker);},get markersBySyncId(){return this.markersBySyncId_;},get domainsSeen(){return this.domainsSeen_;},getModelTimeTransformer(domainId){this.onDomainSeen_(domainId);if(!this.modelDomainId_){this.selectModelDomainId_();} return this.getTimeTransformerRaw_(domainId,this.modelDomainId_).fn;},getTimeTransformerError(fromDomainId,toDomainId){this.onDomainSeen_(fromDomainId);this.onDomainSeen_(toDomainId);return this.getTimeTransformerRaw_(fromDomainId,toDomainId).error;},getTimeTransformerRaw_(fromDomainId,toDomainId){const transformer=this.getTransformerBetween_(fromDomainId,toDomainId);if(!transformer){throw new Error('No clock sync markers exist pairing clock domain "'+ fromDomainId+'" '+'with target clock domain "'+ toDomainId+'".');} @@ -5078,15 +4788,14 @@ function getSliceHi(s){return s.end;} function SliceGroup(parentContainer,opt_sliceConstructor,opt_name){tr.model.EventContainer.call(this);this.parentContainer_=parentContainer;const sliceConstructor=opt_sliceConstructor||ThreadSlice;this.sliceConstructor=sliceConstructor;this.sliceConstructorSubTypes=this.sliceConstructor.subTypes;if(!this.sliceConstructorSubTypes){throw new Error('opt_sliceConstructor must have a subtype registry.');} this.openPartialSlices_=[];this.slices=[];this.topLevelSlices=[];this.haveTopLevelSlicesBeenBuilt=false;this.name_=opt_name;if(this.model===undefined){throw new Error('SliceGroup must have model defined.');}} -SliceGroup.prototype={__proto__:tr.model.EventContainer.prototype,get parentContainer(){return this.parentContainer_;},get model(){return this.parentContainer_.model;},get stableId(){return this.parentContainer_.stableId+'.SliceGroup';},getSettingsKey(){if(!this.name_)return undefined;const parentKey=this.parentContainer_.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},get length(){return this.slices.length;},pushSlice(slice){this.haveTopLevelSlicesBeenBuilt=false;slice.parentContainer=this.parentContainer_;this.slices.push(slice);return slice;},pushSlices(slices){this.haveTopLevelSlicesBeenBuilt=false;slices.forEach(function(slice){slice.parentContainer=this.parentContainer_;this.slices.push(slice);},this);},beginSlice(category,title,ts,opt_args,opt_tts,opt_argsStripped,opt_colorId,opt_bindId){const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},null,opt_tts,undefined,opt_argsStripped,opt_bindId);this.openPartialSlices_.push(slice);slice.didNotFinish=true;this.pushSlice(slice);return slice;},isTimestampValidForBeginOrEnd(ts){if(!this.openPartialSlices_.length)return true;const top=this.openPartialSlices_[this.openPartialSlices_.length-1];return ts>=top.start;},get openSliceCount(){return this.openPartialSlices_.length;},get mostRecentlyOpenedPartialSlice(){if(!this.openPartialSlices_.length)return undefined;return this.openPartialSlices_[this.openPartialSlices_.length-1];},endSlice(ts,opt_tts,opt_colorId){if(!this.openSliceCount){throw new Error('endSlice called without an open slice');} +SliceGroup.prototype={__proto__:tr.model.EventContainer.prototype,get parentContainer(){return this.parentContainer_;},get model(){return this.parentContainer_.model;},get stableId(){return this.parentContainer_.stableId+'.SliceGroup';},getSettingsKey(){if(!this.name_)return undefined;const parentKey=this.parentContainer_.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},get length(){return this.slices.length;},pushSlice(slice){this.haveTopLevelSlicesBeenBuilt=false;slice.parentContainer=this.parentContainer_;this.slices.push(slice);return slice;},pushSlices(slices){this.haveTopLevelSlicesBeenBuilt=false;slices.forEach(function(slice){slice.parentContainer=this.parentContainer_;this.slices.push(slice);},this);},beginSlice(category,title,ts,opt_args,opt_tts,opt_argsStripped,opt_colorId){if(this.openPartialSlices_.length){const prevSlice=this.openPartialSlices_[this.openPartialSlices_.length-1];if(ts<prevSlice.start){throw new Error('Slices must be added in increasing timestamp order');}} +const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},null,opt_tts,undefined,opt_argsStripped);this.openPartialSlices_.push(slice);slice.didNotFinish=true;this.pushSlice(slice);return slice;},isTimestampValidForBeginOrEnd(ts){if(!this.openPartialSlices_.length)return true;const top=this.openPartialSlices_[this.openPartialSlices_.length-1];return ts>=top.start;},get openSliceCount(){return this.openPartialSlices_.length;},get mostRecentlyOpenedPartialSlice(){if(!this.openPartialSlices_.length)return undefined;return this.openPartialSlices_[this.openPartialSlices_.length-1];},endSlice(ts,opt_tts,opt_colorId){if(!this.openSliceCount){throw new Error('endSlice called without an open slice');} const slice=this.openPartialSlices_[this.openSliceCount-1];this.openPartialSlices_.splice(this.openSliceCount-1,1);if(ts<slice.start){throw new Error('Slice '+slice.title+' end time is before its start.');} slice.duration=ts-slice.start;slice.didNotFinish=false;slice.colorId=opt_colorId||slice.colorId;if(opt_tts&&slice.cpuStart!==undefined){slice.cpuDuration=opt_tts-slice.cpuStart;} return slice;},pushCompleteSlice(category,title,ts,duration,tts,cpuDuration,opt_args,opt_argsStripped,opt_colorId,opt_bindId){const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},duration,tts,cpuDuration,opt_argsStripped,opt_bindId);if(duration===undefined){slice.didNotFinish=true;} this.pushSlice(slice);return slice;},autoCloseOpenSlices(){this.updateBounds();const maxTimestamp=this.bounds.max;for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];if(slice.didNotFinish){slice.duration=maxTimestamp-slice.start;}} this.openPartialSlices_=[];},shiftTimestampsForward(amount){for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];slice.start=(slice.start+amount);}},updateBounds(){this.bounds.reset();for(let i=0;i<this.slices.length;i++){this.bounds.addValue(this.slices[i].start);this.bounds.addValue(this.slices[i].end);}},copySlice(slice){const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(slice.category,slice.title);const newSlice=new sliceType(slice.category,slice.title,slice.colorId,slice.start,slice.args,slice.duration,slice.cpuStart,slice.cpuDuration);newSlice.didNotFinish=slice.didNotFinish;return newSlice;},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){if(!this.haveTopLevelSlicesBeenBuilt){throw new Error('Nope');} -for(const s of this.topLevelSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},*childEvents(){yield*this.slices;},*childEventContainers(){},*getDescendantEventsInSortedRanges(ranges,opt_containerPredicate){if(ranges.length===0||(opt_containerPredicate!==undefined&&!opt_containerPredicate(this))){return;} -let rangeIndex=0;let range=ranges[rangeIndex];for(const event of this.childEvents()){while(event.start>range.max){rangeIndex++;if(rangeIndex>=ranges.length)return;range=ranges[rangeIndex];} -if(event.end>=range.min)yield event;}},getSlicesOfName(title){const slices=[];for(let i=0;i<this.slices.length;i++){if(this.slices[i].title===title){slices.push(this.slices[i]);}} +for(const s of this.topLevelSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},*childEvents(){yield*this.slices;},*childEventContainers(){},getSlicesOfName(title){const slices=[];for(let i=0;i<this.slices.length;i++){if(this.slices[i].title===title){slices.push(this.slices[i]);}} return slices;},iterSlicesInTimeRange(callback,start,end){const ret=[];tr.b.iterateOverIntersectingIntervals(this.topLevelSlices,function(s){return s.start;},function(s){return s.duration;},start,end,function(topLevelSlice){callback(topLevelSlice);for(const slice of topLevelSlice.enumerateAllDescendents()){callback(slice);}});return ret;},findFirstSlice(){if(!this.haveTopLevelSlicesBeenBuilt){throw new Error('Nope');} if(0===this.slices.length)return undefined;return this.slices[0];},findSliceAtTs(ts){if(!this.haveTopLevelSlicesBeenBuilt)throw new Error('Nope');let i=tr.b.findIndexInSortedClosedIntervals(this.topLevelSlices,getSliceLo,getSliceHi,ts);if(i===-1||i===this.topLevelSlices.length){return undefined;} let curSlice=this.topLevelSlices[i];while(true){i=tr.b.findIndexInSortedClosedIntervals(curSlice.subSlices,getSliceLo,getSliceHi,ts);if(i===-1||i===curSlice.subSlices.length){return curSlice;} @@ -5130,8 +4839,9 @@ for(let i=0;i<this.kernelSliceGroup.length;i++){categoriesDict[this.kernelSliceGroup.slices[i].category]=true;} for(let i=0;i<this.asyncSliceGroup.length;i++){categoriesDict[this.asyncSliceGroup.slices[i].category]=true;} if(this.samples_){for(let i=0;i<this.samples_.length;i++){categoriesDict[this.samples_[i].category]=true;}}},autoCloseOpenSlices(){this.sliceGroup.autoCloseOpenSlices();this.asyncSliceGroup.autoCloseOpenSlices();this.kernelSliceGroup.autoCloseOpenSlices();},mergeKernelWithUserland(){if(this.kernelSliceGroup.length>0){const newSlices=SliceGroup.merge(this.sliceGroup,this.kernelSliceGroup);this.sliceGroup.slices=newSlices.slices;this.kernelSliceGroup=new SliceGroup(this);this.updateBounds();}},createSubSlices(){this.sliceGroup.createSubSlices();this.samples_=this.parent.model.samples.filter(sample=>sample.thread===this);},get userFriendlyName(){return this.name||this.tid;},get userFriendlyDetails(){return'tid: '+this.tid+ -(this.name?', name: '+this.name:'');},getSettingsKey(){if(!this.name)return undefined;const parentKey=this.parent.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},getProcess(){return this.parent;},indexOfTimeSlice(timeSlice){const i=tr.b.findLowIndexInSortedArray(this.timeSlices,function(slice){return slice.start;},timeSlice.start);if(this.timeSlices[i]!==timeSlice)return undefined;return i;},sumOverToplevelSlicesInRange(range,func){let sum=0;tr.b.iterateOverIntersectingIntervals(this.sliceGroup.topLevelSlices,slice=>slice.start,slice=>slice.end,range.min,range.max,slice=>{let fractionOfSliceInsideRangeOfInterest=1;if(slice.duration>0){const intersection=range.findIntersection(slice.range);fractionOfSliceInsideRangeOfInterest=intersection.duration/slice.duration;} -sum+=func(slice)*fractionOfSliceInsideRangeOfInterest;});return sum;},getCpuTimeForRange(range){return this.sumOverToplevelSlicesInRange(range,slice=>slice.cpuDuration||0);},getNumToplevelSlicesForRange(range){return this.sumOverToplevelSlicesInRange(range,slice=>1);},getSchedulingStatsForRange(start,end){const stats={};if(!this.timeSlices)return stats;function addStatsForSlice(threadTimeSlice){const overlapStart=Math.max(threadTimeSlice.start,start);const overlapEnd=Math.min(threadTimeSlice.end,end);const schedulingState=threadTimeSlice.schedulingState;if(!(schedulingState in stats))stats[schedulingState]=0;stats[schedulingState]+=overlapEnd-overlapStart;} +(this.name?', name: '+this.name:'');},getSettingsKey(){if(!this.name)return undefined;const parentKey=this.parent.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},getProcess(){return this.parent;},indexOfTimeSlice(timeSlice){const i=tr.b.findLowIndexInSortedArray(this.timeSlices,function(slice){return slice.start;},timeSlice.start);if(this.timeSlices[i]!==timeSlice)return undefined;return i;},getCpuStatsForRange(range){const stats={};stats.total=0;if(!this.timeSlices)return stats;function addStatsForSlice(threadTimeSlice){const freqRange=tr.b.math.Range.fromExplicitRange(threadTimeSlice.start,threadTimeSlice.end);const intersection=freqRange.findIntersection(range);if(threadTimeSlice.schedulingState===tr.model.SCHEDULING_STATE.RUNNING){const cpu=threadTimeSlice.cpuOnWhichThreadWasRunning;if(!(cpu.cpuNumber in stats)){stats[cpu.cpuNumber]=0;} +stats[cpu.cpuNumber]+=intersection.duration;stats.total+=intersection.duration;}} +tr.b.iterateOverIntersectingIntervals(this.timeSlices,function(x){return x.start;},function(x){return x.end;},range.min,range.max,addStatsForSlice);return stats;},getSchedulingStatsForRange(start,end){const stats={};if(!this.timeSlices)return stats;function addStatsForSlice(threadTimeSlice){const overlapStart=Math.max(threadTimeSlice.start,start);const overlapEnd=Math.min(threadTimeSlice.end,end);const schedulingState=threadTimeSlice.schedulingState;if(!(schedulingState in stats))stats[schedulingState]=0;stats[schedulingState]+=overlapEnd-overlapStart;} tr.b.iterateOverIntersectingIntervals(this.timeSlices,function(x){return x.start;},function(x){return x.end;},start,end,addStatsForSlice);return stats;},get samples(){return this.samples_;},get type(){const re=/^[^0-9|\/]+/;const matches=re.exec(this.name);if(matches&&matches[0])return matches[0];throw new Error('Could not determine thread type for thread name '+ this.name);}};Thread.compare=function(x,y){let tmp=x.parent.compareTo(y.parent);if(tmp)return tmp;tmp=x.sortIndex-y.sortIndex;if(tmp)return tmp;if(x.name!==undefined){if(y.name!==undefined){tmp=x.name.localeCompare(y.name);}else{tmp=-1;}}else if(y.name!==undefined){tmp=1;} if(tmp)return tmp;return x.tid-y.tid;};return{Thread,};});'use strict';tr.exportTo('tr.model',function(){const Thread=tr.model.Thread;const Counter=tr.model.Counter;function ProcessBase(model){if(!model){throw new Error('Must provide a model');} @@ -5191,7 +4901,7 @@ const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const EFFECTIVE_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME;const MemoryAllocatorDumpInfoType=tr.model.MemoryAllocatorDumpInfoType;const PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN;const PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER;function getSize(dump){const numeric=dump.numerics[SIZE_NUMERIC_NAME];if(numeric===undefined)return 0;return numeric.value;} function hasSize(dump){return dump.numerics[SIZE_NUMERIC_NAME]!==undefined;} function optional(value,defaultValue){if(value===undefined)return defaultValue;return value;} -GlobalMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get stableId(){return'memory.'+this.model.globalMemoryDumps.indexOf(this);},get userFriendlyName(){return'Global memory dump at '+ +GlobalMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get userFriendlyName(){return'Global memory dump at '+ tr.b.Unit.byName.timeStampInMs.format(this.start);},get containerName(){return'global space';},finalizeGraph(){this.removeWeakDumps();this.setUpTracingOverheadOwnership();this.aggregateNumerics();this.calculateSizes();this.calculateEffectiveSizes();this.discountTracingOverheadFromVmRegions();this.forceRebuildingMemoryAllocatorDumpByFullNameIndices();},removeWeakDumps(){this.traverseAllocatorDumpsInDepthFirstPreOrder(function(dump){if(dump.weak)return;if((dump.owns!==undefined&&dump.owns.target.weak)||(dump.parent!==undefined&&dump.parent.weak)){dump.weak=true;}});function removeWeakDumpsFromListRecursively(dumps){tr.b.inPlaceFilter(dumps,function(dump){if(dump.weak){return false;} removeWeakDumpsFromListRecursively(dump.children);tr.b.inPlaceFilter(dump.ownedBy,function(ownershipLink){return!ownershipLink.source.weak;});return true;});} this.iterateContainerDumps(function(containerDump){const memoryAllocatorDumps=containerDump.memoryAllocatorDumps;if(memoryAllocatorDumps!==undefined){removeWeakDumpsFromListRecursively(memoryAllocatorDumps);}});},calculateSizes(){this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateMemoryAllocatorDumpSize_.bind(this));},calculateMemoryAllocatorDumpSize_(dump){let shouldDefineSize=false;function getDependencySize(dependencyDump){const numeric=dependencyDump.numerics[SIZE_NUMERIC_NAME];if(numeric===undefined)return 0;shouldDefineSize=true;return numeric.value;} @@ -5227,13 +4937,12 @@ this.iterateAllRootAllocatorDumps(visit);},traverseAllocatorDumpsInDepthFirstPreOrder(fn){const visitedDumps=new WeakSet();function visit(dump){if(visitedDumps.has(dump))return;if(dump.owns!==undefined&&!visitedDumps.has(dump.owns.target)){return;} if(dump.parent!==undefined&&!visitedDumps.has(dump.parent)){return;} fn.call(this,dump);visitedDumps.add(dump);dump.ownedBy.forEach(function(ownershipLink){visit.call(this,ownershipLink.source);},this);dump.children.forEach(visit,this);} -this.iterateAllRootAllocatorDumps(visit);}};tr.model.EventRegistry.register(GlobalMemoryDump,{name:'globalMemoryDump',pluralName:'globalMemoryDumps'});return{GlobalMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){const InstantEventType={GLOBAL:1,PROCESS:2};function InstantEvent(category,title,colorId,start,args,parent){tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.args=args;this.parent_=parent;this.type=undefined;} -InstantEvent.prototype={__proto__:tr.model.TimedEvent.prototype,};function GlobalInstantEvent(category,title,colorId,start,args,parent){InstantEvent.apply(this,arguments);this.type=InstantEventType.GLOBAL;} +this.iterateAllRootAllocatorDumps(visit);}};tr.model.EventRegistry.register(GlobalMemoryDump,{name:'globalMemoryDump',pluralName:'globalMemoryDumps'});return{GlobalMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){const InstantEventType={GLOBAL:1,PROCESS:2};function InstantEvent(category,title,colorId,start,args){tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.args=args;this.type=undefined;} +InstantEvent.prototype={__proto__:tr.model.TimedEvent.prototype};function GlobalInstantEvent(category,title,colorId,start,args){InstantEvent.apply(this,arguments);this.type=InstantEventType.GLOBAL;} GlobalInstantEvent.prototype={__proto__:InstantEvent.prototype,get userFriendlyName(){return'Global instant event '+this.title+' @ '+ -tr.b.Unit.byName.timeStampInMs.format(start);},get stableId(){return'instant.'+this.parent_.instantEvents.indexOf(this);},};function ProcessInstantEvent(category,title,colorId,start,args,parent){InstantEvent.apply(this,arguments);this.type=InstantEventType.PROCESS;} +tr.b.Unit.byName.timeStampInMs.format(start);}};function ProcessInstantEvent(category,title,colorId,start,args){InstantEvent.apply(this,arguments);this.type=InstantEventType.PROCESS;} ProcessInstantEvent.prototype={__proto__:InstantEvent.prototype,get userFriendlyName(){return'Process-level instant event '+this.title+' @ '+ -tr.b.Unit.byName.timeStampInMs.format(start);},get stableId(){return this.parent_.stableId+'.instant.'+ -this.parent_.instantEvents.indexOf(this);},};tr.model.EventRegistry.register(InstantEvent,{name:'instantEvent',pluralName:'instantEvents'});return{GlobalInstantEvent,ProcessInstantEvent,InstantEventType,InstantEvent,};});'use strict';tr.exportTo('tr.model',function(){const Cpu=tr.model.Cpu;const ProcessBase=tr.model.ProcessBase;function Kernel(model){ProcessBase.call(this,model);this.cpus={};this.softwareMeasuredCpuCount_=undefined;} +tr.b.Unit.byName.timeStampInMs.format(start);}};tr.model.EventRegistry.register(InstantEvent,{name:'instantEvent',pluralName:'instantEvents'});return{GlobalInstantEvent,ProcessInstantEvent,InstantEventType,InstantEvent,};});'use strict';tr.exportTo('tr.model',function(){const Cpu=tr.model.Cpu;const ProcessBase=tr.model.ProcessBase;function Kernel(model){ProcessBase.call(this,model);this.cpus={};this.softwareMeasuredCpuCount_=undefined;} Kernel.compare=function(x,y){return 0;};Kernel.prototype={__proto__:ProcessBase.prototype,compareTo(that){return Kernel.compare(this,that);},get userFriendlyName(){return'Kernel';},get userFriendlyDetails(){return'Kernel';},get stableId(){return'Kernel';},getOrCreateCpu(cpuNumber){if(!this.cpus[cpuNumber]){this.cpus[cpuNumber]=new Cpu(this,cpuNumber);} return this.cpus[cpuNumber];},get softwareMeasuredCpuCount(){return this.softwareMeasuredCpuCount_;},set softwareMeasuredCpuCount(softwareMeasuredCpuCount){if(this.softwareMeasuredCpuCount_!==undefined&&this.softwareMeasuredCpuCount_!==softwareMeasuredCpuCount){throw new Error('Cannot change the softwareMeasuredCpuCount once it is set');} this.softwareMeasuredCpuCount_=softwareMeasuredCpuCount;},get bestGuessAtCpuCount(){const realCpuCount=Object.keys(this.cpus).length;if(realCpuCount!==0){return realCpuCount;} @@ -5266,23 +4975,9 @@ if(this.regions_!==undefined&&this.regions_.length!==0){throw new Error('Internal error: Classification node should have no regions');} if(this.isLeafNode){return;} this.regions_=undefined;this.children_=this.rule_.children.map(function(childRule){const child=new VMRegionClassificationNode(childRule);child.buildChildNodesRecursively_();return child;});},addStatsFromRegion_(region){this.hasRegions=true;const regionSizeInBytes=region.sizeInBytes;if(regionSizeInBytes!==undefined){this.sizeInBytes=(this.sizeInBytes||0)+regionSizeInBytes;} -const thisByteStats=this.byteStats;const regionByteStats=region.byteStats;for(const byteStatName in regionByteStats){const regionByteStatValue=regionByteStats[byteStatName];if(regionByteStatValue===undefined)continue;thisByteStats[byteStatName]=(thisByteStats[byteStatName]||0)+regionByteStatValue;} -if(region.mappedFile.includes('/base.odex')||region.mappedFile.includes('/base.vdex')){if(region.byteStats.proportionalResident!==undefined){thisByteStats.javaBasePss=(thisByteStats.javaBasePss||0)+ -region.byteStats.proportionalResident;} -if(region.byteStats.privateCleanResident!==undefined){thisByteStats.javaBaseCleanResident=(thisByteStats.javaBaseCleanResident||0)+ -region.byteStats.privateCleanResident;} -if(region.byteStats.sharedCleanResident!==undefined){thisByteStats.javaBaseCleanResident=(thisByteStats.javaBaseCleanResident||0)+ -region.byteStats.sharedCleanResident;}} -const textProtectionFlags=(VMRegion.PROTECTION_FLAG_READ|VMRegion.PROTECTION_FLAG_EXECUTE);if((region.protectionFlags===textProtectionFlags)&&(region.mappedFile.includes('/base.apk')||region.mappedFile.includes('/libchrome.so'))){if(regionSizeInBytes!==undefined){this.nativeLibrarySizeInBytes=(this.nativeLibrarySizeInBytes||0)+regionSizeInBytes;} -if(region.byteStats.privateCleanResident!==undefined){thisByteStats.nativeLibraryPrivateCleanResident=(thisByteStats.nativeLibraryPrivateCleanResident||0)+ -region.byteStats.privateCleanResident;} -if(region.byteStats.sharedCleanResident!==undefined){thisByteStats.nativeLibrarySharedCleanResident=(thisByteStats.nativeLibrarySharedCleanResident||0)+ -region.byteStats.sharedCleanResident;} -if(region.byteStats.proportionalResident!==undefined){thisByteStats.nativeLibraryProportionalResident=(thisByteStats.nativeLibraryProportionalResident||0)+ -region.byteStats.proportionalResident;}}}};return{VMRegion,VMRegionClassificationNode,};});'use strict';tr.exportTo('tr.model',function(){const DISCOUNTED_ALLOCATOR_NAMES=['winheap','malloc'];const TRACING_OVERHEAD_PATH=['allocated_objects','tracing_overhead'];const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const RESIDENT_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.RESIDENT_SIZE_NUMERIC_NAME;function getSizeNumericValue(dump,sizeNumericName){const sizeNumeric=dump.numerics[sizeNumericName];if(sizeNumeric===undefined)return 0;return sizeNumeric.value;} +const thisByteStats=this.byteStats;const regionByteStats=region.byteStats;for(const byteStatName in regionByteStats){const regionByteStatValue=regionByteStats[byteStatName];if(regionByteStatValue===undefined)continue;thisByteStats[byteStatName]=(thisByteStats[byteStatName]||0)+regionByteStatValue;}}};return{VMRegion,VMRegionClassificationNode,};});'use strict';tr.exportTo('tr.model',function(){const DISCOUNTED_ALLOCATOR_NAMES=['winheap','malloc'];const TRACING_OVERHEAD_PATH=['allocated_objects','tracing_overhead'];const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const RESIDENT_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.RESIDENT_SIZE_NUMERIC_NAME;function getSizeNumericValue(dump,sizeNumericName){const sizeNumeric=dump.numerics[sizeNumericName];if(sizeNumeric===undefined)return 0;return sizeNumeric.value;} function ProcessMemoryDump(globalMemoryDump,process,start){tr.model.ContainerMemoryDump.call(this,start);this.process=process;this.globalMemoryDump=globalMemoryDump;this.totals=undefined;this.vmRegions=undefined;this.heapDumps=undefined;this.tracingOverheadOwnershipSetUp_=false;this.tracingOverheadDiscountedFromVmRegions_=false;} -ProcessMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get stableId(){return this.process.stableId+'.memory.'+ -this.process.memoryDumps.indexOf(this);},get userFriendlyName(){return'Process memory dump at '+ +ProcessMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get userFriendlyName(){return'Process memory dump at '+ tr.b.Unit.byName.timeStampInMs.format(this.start);},get containerName(){return this.process.userFriendlyName;},get processMemoryDumps(){const dumps={};dumps[this.process.pid]=this;return dumps;},get hasOwnVmRegions(){return this.vmRegions!==undefined;},setUpTracingOverheadOwnership(opt_model){if(this.tracingOverheadOwnershipSetUp_)return;this.tracingOverheadOwnershipSetUp_=true;const tracingDump=this.getMemoryAllocatorDumpByFullName('tracing');if(tracingDump===undefined||tracingDump.owns!==undefined){return;} if(tracingDump.owns!==undefined)return;const hasDiscountedFromAllocatorDumps=DISCOUNTED_ALLOCATOR_NAMES.some(function(allocatorName){const allocatorDump=this.getMemoryAllocatorDumpByFullName(allocatorName);if(allocatorDump===undefined){return false;} let nextPathIndex=0;let currentDump=allocatorDump;let currentFullName=allocatorName;for(;nextPathIndex<TRACING_OVERHEAD_PATH.length;nextPathIndex++){const childFullName=currentFullName+'/'+ @@ -5321,7 +5016,11 @@ this.parentFrame_=parentFrame;if(this.parentFrame_){this.parentFrame_.addChild(this);}},addChild(child){this.children.push(child);},removeChild(child){const i=this.children.indexOf(child.id);if(i===-1){throw new Error('omg');} this.children.splice(i,1);},removeAllChildren(){for(let i=0;i<this.children.length;i++){this.children[i].parentFrame_=undefined;} this.children.splice(0,this.children.length);},get stackTrace(){const stack=[this];let cur=this.parentFrame;while(cur){stack.push(cur);cur=cur.parentFrame;} -return stack;},getUserFriendlyStackTrace(){return this.stackTrace.map(function(x){return x.title;});}};return{StackFrame,};});'use strict';tr.exportTo('tr.model.um',function(){class UserModel extends tr.model.EventContainer{constructor(parentModel){super();this.parentModel_=parentModel;this.expectations_=new tr.model.EventSet();this.segments_=[];} +return stack;},getUserFriendlyStackTrace(){return this.stackTrace.map(function(x){return x.title;});}};return{StackFrame,};});'use strict';tr.exportTo('tr.model.um',function(){class Segment extends tr.model.TimedEvent{constructor(start,duration){super(start);this.duration=duration;this.expectations_=[];} +get expectations(){return this.expectations_;} +clone(){const clone=new Segment(this.start,this.duration);clone.expectations.push(...this.expectations);return clone;} +addSegment(other){this.duration+=other.duration;this.expectations.push(...other.expectations);}} +return{Segment,};});'use strict';tr.exportTo('tr.model.um',function(){class UserModel extends tr.model.EventContainer{constructor(parentModel){super();this.parentModel_=parentModel;this.expectations_=new tr.model.EventSet();this.segments_=[];} get stableId(){return'UserModel';} get parentModel(){return this.parentModel_;} sortExpectations(){this.expectations_.sortEvents((x,y)=>(x.start-y.start));} @@ -5378,7 +5077,7 @@ EtwImporter.canImport=function(events){if(!events.hasOwnProperty('name')||!events.hasOwnProperty('content')||events.name!=='ETW'){return false;} return true;};EtwImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'EtwImporter';},get model(){return this.model_;},createThreadIfNeeded(pid,tid){this.tidsToPid_[tid]=pid;},removeThreadIfPresent(tid){this.tidsToPid_[tid]=undefined;},getPidFromWindowsTid(tid){if(tid===0)return 0;const pid=this.tidsToPid_[tid];if(pid===undefined){return 0;} return pid;},getThreadFromWindowsTid(tid){const pid=this.getPidFromWindowsTid(tid);const process=this.model_.getProcess(pid);if(!process)return undefined;return process.getThread(tid);},getOrCreateCpu(cpuNumber){const cpu=this.model_.kernel.getOrCreateCpu(cpuNumber);return cpu;},importEvents(){this.events_.content.forEach(this.parseInfo.bind(this));if(this.walltime_===undefined||this.ticks_===undefined){throw Error('Cannot find clock sync information in the system trace.');} -if(this.is64bit_===undefined){throw Error('Cannot determine pointer size of the system trace.'+'Consider deselecting "System tracing" or disabling the "Paging '+'Executive" feature of Windows');} +if(this.is64bit_===undefined){throw Error('Cannot determine pointer size of the system trace.');} this.events_.content.forEach(this.parseEvent.bind(this));},importTimestamp(timestamp){const ts=parseInt(timestamp,16);return(ts-this.walltime_+this.ticks_)/1000.;},parseInfo(event){if(event.hasOwnProperty('guid')&&event.hasOwnProperty('walltime')&&event.hasOwnProperty('tick')&&event.guid==='ClockSync'){this.walltime_=parseInt(event.walltime,16);this.ticks_=parseInt(event.tick,16);} if(this.is64bit_===undefined&&event.hasOwnProperty('guid')&&event.hasOwnProperty('op')&&event.hasOwnProperty('ver')&&event.hasOwnProperty('payload')&&event.guid===kThreadGuid&&event.op===kThreadDCStartOpcode){const decodedSize=tr.b.Base64.getDecodedBufferLength(event.payload);if(event.ver===1){if(decodedSize>=52){this.is64bit_=true;}else{this.is64bit_=false;}}else if(event.ver===2){if(decodedSize>=64){this.is64bit_=true;}else{this.is64bit_=false;}}else if(event.ver===3){if(decodedSize>=60){this.is64bit_=true;}else{this.is64bit_=false;}}} return true;},parseEvent(event){if(!event.hasOwnProperty('guid')||!event.hasOwnProperty('op')||!event.hasOwnProperty('ver')||!event.hasOwnProperty('cpu')||!event.hasOwnProperty('ts')||!event.hasOwnProperty('payload')){return false;} @@ -5394,7 +5093,7 @@ readNumBytes(opt_size){throw new Error('Not implemented');} rewind(){throw new Error('Not implemented');} substream(offset,opt_length,opt_headerSize){throw new Error('Not implemented');}} -return{TraceStream,};});'use strict';tr.exportTo('tr.e.importer.fuchsia',function(){const IMPORT_PRIORITY=0;const IDLE_THREAD_THRESHOLD=6444000000;const ZX_THREAD_STATE_NEW=0;const ZX_THREAD_STATE_RUNNING=1;const ZX_THREAD_STATE_SUSPENDED=2;const ZX_THREAD_STATE_BLOCKED=3;const ZX_THREAD_STATE_DYING=4;const ZX_THREAD_STATE_DEAD=5;class FuchsiaImporter extends tr.importer.Importer{constructor(model,eventData){super(model,eventData);this.importPriority=IMPORT_PRIORITY;this.model_=model;this.events_=eventData.events;this.parsers_=[];this.threadInfo_=new Map();this.processNames_=new Map();this.threadStates_=new Map();} +return{TraceStream,};});'use strict';tr.exportTo('tr.e.importer.fuchsia',function(){const IMPORT_PRIORITY=0;const IDLE_THREAD_THRESHOLD=6444000000;class FuchsiaImporter extends tr.importer.Importer{constructor(model,eventData){super(model,eventData);this.importPriority=IMPORT_PRIORITY;this.model_=model;this.events_=eventData.events;this.parsers_=[];this.threadInfo_=new Map();this.processNames_=new Map();} static canImport(eventData){if(eventData instanceof tr.b.TraceStream){if(eventData.isBinary)return false;eventData=eventData.header;} if(eventData instanceof Object&&eventData.type==='fuchsia'){return true;} return false;} @@ -5402,22 +5101,13 @@ get model(){return this.model_;} importClockSyncMarkers(){} finalizeImport(){} -isIdleThread(prio,tid){if(prio===undefined){return tid>IDLE_THREAD_THRESHOLD;} -return prio===0;} -recordThreadState_(tid,timestamp,state,prio){if(this.isIdleThread(prio,tid)){return;} -const states=this.threadStates_.has(tid)?this.threadStates_.get(tid):[];states.push({'ts':timestamp,state});this.threadStates_.set(tid,states);} -processContextSwitchEvent_(event){let tid=event.in.tid;let threadName=tid.toString();let procName='';const prio=event.in.prio;if(this.threadInfo_.has(tid)){const threadInfo=this.threadInfo_.get(tid);threadName=threadInfo.name;const pid=threadInfo.pid;if(this.processNames_.has(pid)){procName=this.processNames_.get(pid)+':';}} -const name=procName+threadName;if(this.isIdleThread(prio,tid)){tid=undefined;} -const cpu=this.model_.kernel.getOrCreateCpu(event.cpu);const timestamp=tr.b.Unit.timestampFromUs(event.ts);cpu.switchActiveThread(timestamp,{},tid,name,tid);const SCHEDULING_STATE=tr.model.SCHEDULING_STATE;this.recordThreadState_(tid,timestamp,SCHEDULING_STATE.RUNNING,prio);let outState=SCHEDULING_STATE.UNKNOWN;switch(event.out.state){case ZX_THREAD_STATE_NEW:outState=SCHEDULING_STATE.RUNNABLE;break;case ZX_THREAD_STATE_RUNNING:outState=SCHEDULING_STATE.RUNNABLE;break;case ZX_THREAD_STATE_BLOCKED:outState=SCHEDULING_STATE.SLEEPING;break;case ZX_THREAD_STATE_SUSPENDED:outState=SCHEDULING_STATE.STOPPED;break;case ZX_THREAD_STATE_DEAD:outState=SCHEDULING_STATE.TASK_DEAD;break;} -this.recordThreadState_(event.out.tid,timestamp,outState,event.out.prio);} +processContextSwitchEvent_(event){let tid=event.in.tid;let threadName=tid.toString();let procName='';if(this.threadInfo_.has(tid)){const threadInfo=this.threadInfo_.get(tid);threadName=threadInfo.name;const pid=threadInfo.pid;if(this.processNames_.has(pid)){procName=this.processNames_.get(pid)+':';}} +const name=procName+threadName;if(tid>IDLE_THREAD_THRESHOLD){tid=undefined;} +const cpu=this.model_.kernel.getOrCreateCpu(event.cpu);cpu.switchActiveThread(tr.b.Unit.timestampFromUs(event.ts),{},tid,name,tid);} processProcessInfoEvent_(event){const process=this.model_.getOrCreateProcess(event.pid);process.name=event.name;this.processNames_.set(event.pid,event.name);if('sort_index'in event){process.sortIndex=event.sort_index;}} processThreadInfoEvent_(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);thread.name=event.name;this.threadInfo_.set(event.tid,{'name':event.name,'pid':event.pid});if('sort_index'in event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);thread.sortIndex=event.sort_index;}} processEvent_(event){switch(event.ph){case'k':this.processContextSwitchEvent_(event);break;case'p':this.processProcessInfoEvent_(event);break;case't':this.processThreadInfoEvent_(event);break;}} -postProcessStates_(){for(const[tid,states]of this.threadStates_){if(!this.threadInfo_.has(tid)){continue;} -const pid=this.threadInfo_.get(tid).pid;const thread=this.model_.getOrCreateProcess(pid).getOrCreateThread(tid);const slices=[];for(let i=0;i<states.length-1;i++){slices.push(new tr.model.ThreadTimeSlice(thread,states[i].state,'',states[i].ts,{},states[i+1].ts-states[i].ts));} -thread.timeSlices=slices;}} -importEvents(){for(const event of this.events_){this.processEvent_(event);} -this.postProcessStates_();}} +importEvents(){for(const event of this.events_){this.processEvent_(event);}}} tr.importer.Importer.register(FuchsiaImporter);return{FuchsiaImporter,IMPORT_PRIORITY,};});'use strict';tr.exportTo('tr.b',function(){const MAX_FUNCTION_ARGS_COUNT=Math.pow(2,15)-1;class InMemoryTraceStream extends tr.b.TraceStream{constructor(buffer,isBinary,opt_headerSize){super();if(!buffer instanceof Uint8Array){throw new Error('buffer should be a Uint8Array');} const headerSize=opt_headerSize||tr.b.TraceStream.HEADER_SIZE;this.data_=buffer;this.isBinary_=isBinary;this.header_=InMemoryTraceStream.uint8ArrayToString_(this.data_.subarray(0,headerSize));this.cursor_=0;} get isBinary(){return this.isBinary_;} @@ -5788,9 +5478,7 @@ return bank;}};function TraceCodeBank(){this.entries_=[];} TraceCodeBank.prototype={removeEntry(address){if(this.entries_.length===0)return undefined;const index=tr.b.findLowIndexInSortedArray(this.entries_,function(entry){return entry.address;},address);const entry=this.entries_[index];if(!entry||entry.address!==address)return undefined;this.entries_.splice(index,1);return entry;},lookupEntry(address){const index=tr.b.findFirstTrueIndexInSortedArray(this.entries_,e=>(address<e.address))-1;const entry=this.entries_[index];return entry&&address<entry.address+entry.size?entry:undefined;},addEntry(newEntry){if(this.entries_.length===0){this.entries_.push(newEntry);} const endAddress=newEntry.address+newEntry.size;const lastIndex=tr.b.findLowIndexInSortedArray(this.entries_,function(entry){return entry.address;},endAddress);let index;for(index=lastIndex-1;index>=0;--index){const entry=this.entries_[index];const entryEndAddress=entry.address+entry.size;if(entryEndAddress<=newEntry.address)break;} -++index;this.entries_.splice(index,lastIndex-index,newEntry);}};return{TraceCodeMap,};});'use strict';tr.exportTo('tr.e.measure',function(){const AsyncSlice=tr.model.AsyncSlice;const MEASURE_NAME_REGEX=/([^\/:]+):(.*?)(?:\/([A-Za-z0-9+/]+=?=?))?$/;function MeasureAsyncSlice(){this.groupTitle_='Ungrouped Measure';const matched=MEASURE_NAME_REGEX.exec(arguments[1]);if(matched!==null){arguments[1]=matched[2];this.groupTitle_=matched[1];} -AsyncSlice.apply(this,arguments);} -MeasureAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get viewSubGroupTitle(){return this.groupTitle_;},get title(){return this.title_;},set title(title){this.title_=title;}};AsyncSlice.subTypes.register(MeasureAsyncSlice,{categoryParts:['blink.user_timing']});return{MEASURE_NAME_REGEX,MeasureAsyncSlice,};});'use strict';tr.exportTo('tr.importer',function(){function ContextProcessor(model){this.model_=model;this.activeContexts_=[];this.stackPerType_={};this.contextCache_={};this.contextSetCache_={};this.cachedEntryForActiveContexts_=undefined;this.seenSnapshots_={};} +++index;this.entries_.splice(index,lastIndex-index,newEntry);}};return{TraceCodeMap,};});'use strict';tr.exportTo('tr.importer',function(){function ContextProcessor(model){this.model_=model;this.activeContexts_=[];this.stackPerType_={};this.contextCache_={};this.contextSetCache_={};this.cachedEntryForActiveContexts_=undefined;this.seenSnapshots_={};} ContextProcessor.prototype={enterContext(contextType,scopedId){const newActiveContexts=[this.getOrCreateContext_(contextType,scopedId),];for(const oldContext of this.activeContexts_){if(oldContext.type===contextType){this.pushContext_(oldContext);}else{newActiveContexts.push(oldContext);}} this.activeContexts_=newActiveContexts;this.cachedEntryForActiveContexts_=undefined;},leaveContext(contextType,scopedId){this.leaveContextImpl_(context=>context.type===contextType&&context.snapshot.scope===scopedId.scope&&context.snapshot.idRef===scopedId.id);},destroyContext(scopedId){for(const stack of Object.values(this.stackPerType_)){let newLength=0;for(let i=0;i<stack.length;++i){if(stack[i].snapshot.scope!==scopedId.scope||stack[i].snapshot.idRef!==scopedId.id){stack[newLength++]=stack[i];}} stack.length=newLength;} @@ -5832,9 +5520,9 @@ ScopedId.prototype={toString(){const pidStr=this.pid===undefined?'':'pid: '+this.pid+', ';return'{'+pidStr+'scope: '+this.scope+', id: '+this.id+'}';},toStringWithDelimiter(delim){return(this.pid===undefined?'':this.pid)+delim+ this.scope+delim+this.id;}};return{ScopedId,};});'use strict';tr.exportTo('tr.ui.annotations',function(){function XMarkerAnnotationView(viewport,annotation){this.viewport_=viewport;this.annotation_=annotation;} XMarkerAnnotationView.prototype={__proto__:tr.ui.annotations.AnnotationView.prototype,draw(ctx){const dt=this.viewport_.currentDisplayTransform;const viewX=dt.xWorldToView(this.annotation_.timestamp);ctx.beginPath();tr.ui.b.drawLine(ctx,viewX,0,viewX,ctx.canvas.height);ctx.strokeStyle=this.annotation_.strokeStyle;ctx.stroke();}};return{XMarkerAnnotationView,};});'use strict';tr.exportTo('tr.model',function(){function XMarkerAnnotation(timestamp){tr.model.Annotation.apply(this,arguments);this.timestamp=timestamp;this.strokeStyle='rgba(0, 0, 255, 0.5)';} -XMarkerAnnotation.fromDict=function(dict){return new XMarkerAnnotation(dict.args.timestamp);};XMarkerAnnotation.prototype={__proto__:tr.model.Annotation.prototype,toDict(){return{typeName:'xmarker',args:{timestamp:this.timestamp}};},createView_(viewport){return new tr.ui.annotations.XMarkerAnnotationView(viewport,this);}};tr.model.Annotation.register(XMarkerAnnotation,{typeName:'xmarker'});return{XMarkerAnnotation,};});'use strict';tr.exportTo('tr.e.importer',function(){const Base64=tr.b.Base64;const deepCopy=tr.b.deepCopy;const ColorScheme=tr.b.ColorScheme;const HeapDumpTraceEventImporter=tr.e.importer.HeapDumpTraceEventImporter;const LegacyHeapDumpTraceEventImporter=tr.e.importer.LegacyHeapDumpTraceEventImporter;const StreamingEventExpander=tr.e.importer.StreamingEventExpander;const ProfilingDictionaryReader=tr.e.importer.ProfilingDictionaryReader;const MEASURE_NAME_REGEX=tr.e.measure.MEASURE_NAME_REGEX;function getEventColor(event,opt_customName){if(event.cname){return ColorScheme.getColorIdForReservedName(event.cname);}else if(opt_customName||event.name){return ColorScheme.getColorIdForGeneralPurposeString(opt_customName||event.name);}} +XMarkerAnnotation.fromDict=function(dict){return new XMarkerAnnotation(dict.args.timestamp);};XMarkerAnnotation.prototype={__proto__:tr.model.Annotation.prototype,toDict(){return{typeName:'xmarker',args:{timestamp:this.timestamp}};},createView_(viewport){return new tr.ui.annotations.XMarkerAnnotationView(viewport,this);}};tr.model.Annotation.register(XMarkerAnnotation,{typeName:'xmarker'});return{XMarkerAnnotation,};});'use strict';tr.exportTo('tr.e.importer',function(){const Base64=tr.b.Base64;const deepCopy=tr.b.deepCopy;const ColorScheme=tr.b.ColorScheme;const HeapDumpTraceEventImporter=tr.e.importer.HeapDumpTraceEventImporter;const LegacyHeapDumpTraceEventImporter=tr.e.importer.LegacyHeapDumpTraceEventImporter;const StreamingEventExpander=tr.e.importer.StreamingEventExpander;const ProfilingDictionaryReader=tr.e.importer.ProfilingDictionaryReader;function getEventColor(event,opt_customName){if(event.cname){return ColorScheme.getColorIdForReservedName(event.cname);}else if(opt_customName||event.name){return ColorScheme.getColorIdForGeneralPurposeString(opt_customName||event.name);}} function isLegacyChromeClockSyncEvent(event){return event.name!==undefined&&event.name.startsWith(LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX)&&((event.ph==='S')||(event.ph==='F'));} -const PRODUCER='producer';const CONSUMER='consumer';const STEP='step';const BACKGROUND=tr.model.ContainerMemoryDump.LevelOfDetail.BACKGROUND;const LIGHT=tr.model.ContainerMemoryDump.LevelOfDetail.LIGHT;const DETAILED=tr.model.ContainerMemoryDump.LevelOfDetail.DETAILED;const MEMORY_DUMP_LEVEL_OF_DETAIL_ORDER=[undefined,BACKGROUND,LIGHT,DETAILED];const GLOBAL_MEMORY_ALLOCATOR_DUMP_PREFIX='global/';const LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX='ClockSyncEvent.';const BYTE_STAT_NAME_MAP={'pc':'privateCleanResident','pd':'privateDirtyResident','sc':'sharedCleanResident','sd':'sharedDirtyResident','pss':'proportionalResident','sw':'swapped'};const WEAK_MEMORY_ALLOCATOR_DUMP_FLAG=1<<0;const OBJECT_TYPE_NAME_PATTERNS=[{prefix:'const char *WTF::getStringWithTypeName() [T = ',suffix:']'},{prefix:'const char* WTF::getStringWithTypeName() [with T = ',suffix:']'},{prefix:'const char *__cdecl WTF::getStringWithTypeName<',suffix:'>(void)'}];const SUBTRACE_FIELDS=new Set(['powerTraceAsString','systemTraceEvents','androidProcessDump',]);const NON_METADATA_FIELDS=new Set(['displayTimeUnit','samples','stackFrames','traceAnnotations','traceEvents',...SUBTRACE_FIELDS]);function TraceEventImporter(model,eventData){this.hasEvents_=undefined;this.importPriority=1;this.model_=model;this.events_=undefined;this.sampleEvents_=undefined;this.stackFrameEvents_=undefined;this.stackFrameTree_=new tr.model.ProfileTree();this.subtraces_=[];this.eventsWereFromString_=false;this.softwareMeasuredCpuCount_=undefined;this.allAsyncEvents_=[];this.allFlowEvents_=[];this.allObjectEvents_=[];this.contextProcessorPerThread={};this.traceEventSampleStackFramesByName_={};this.v8ProcessCodeMaps_={};this.v8ProcessRootStackFrame_={};this.v8SamplingData_=[];this.profileTrees_=new Map();this.profileInfo_=new Map();this.legacyChromeClockSyncStartEvent_=undefined;this.legacyChromeClockSyncFinishEvent_=undefined;this.allMemoryDumpEvents_={};this.heapProfileExpander=new ProfilingDictionaryReader();this.objectTypeNameMap_={};this.clockDomainId_=tr.model.ClockDomainId.UNKNOWN_CHROME_LEGACY;this.toModelTime_=undefined;if(typeof(eventData)==='string'||eventData instanceof String){eventData=eventData.trim();if(eventData[0]==='['){eventData=eventData.replace(/\s*,\s*$/,'');if(eventData[eventData.length-1]!==']'){eventData=eventData+']';}} +const PRODUCER='producer';const CONSUMER='consumer';const STEP='step';const BACKGROUND=tr.model.ContainerMemoryDump.LevelOfDetail.BACKGROUND;const LIGHT=tr.model.ContainerMemoryDump.LevelOfDetail.LIGHT;const DETAILED=tr.model.ContainerMemoryDump.LevelOfDetail.DETAILED;const MEMORY_DUMP_LEVEL_OF_DETAIL_ORDER=[undefined,BACKGROUND,LIGHT,DETAILED];const GLOBAL_MEMORY_ALLOCATOR_DUMP_PREFIX='global/';const LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX='ClockSyncEvent.';const BYTE_STAT_NAME_MAP={'pc':'privateCleanResident','pd':'privateDirtyResident','sc':'sharedCleanResident','sd':'sharedDirtyResident','pss':'proportionalResident','sw':'swapped'};const WEAK_MEMORY_ALLOCATOR_DUMP_FLAG=1<<0;const OBJECT_TYPE_NAME_PATTERNS=[{prefix:'const char *WTF::getStringWithTypeName() [T = ',suffix:']'},{prefix:'const char* WTF::getStringWithTypeName() [with T = ',suffix:']'},{prefix:'const char *__cdecl WTF::getStringWithTypeName<',suffix:'>(void)'}];const SUBTRACE_FIELDS=new Set(['powerTraceAsString','systemTraceEvents',]);const NON_METADATA_FIELDS=new Set(['displayTimeUnit','samples','stackFrames','traceAnnotations','traceEvents',...SUBTRACE_FIELDS]);function TraceEventImporter(model,eventData){this.hasEvents_=undefined;this.importPriority=1;this.model_=model;this.events_=undefined;this.sampleEvents_=undefined;this.stackFrameEvents_=undefined;this.stackFrameTree_=new tr.model.ProfileTree();this.subtraces_=[];this.eventsWereFromString_=false;this.softwareMeasuredCpuCount_=undefined;this.allAsyncEvents_=[];this.allFlowEvents_=[];this.allObjectEvents_=[];this.contextProcessorPerThread={};this.traceEventSampleStackFramesByName_={};this.v8ProcessCodeMaps_={};this.v8ProcessRootStackFrame_={};this.v8SamplingData_=[];this.profileTrees_=new Map();this.profileInfo_=new Map();this.legacyChromeClockSyncStartEvent_=undefined;this.legacyChromeClockSyncFinishEvent_=undefined;this.allMemoryDumpEvents_={};this.heapProfileExpander=new ProfilingDictionaryReader();this.objectTypeNameMap_={};this.clockDomainId_=tr.model.ClockDomainId.UNKNOWN_CHROME_LEGACY;this.toModelTime_=undefined;if(typeof(eventData)==='string'||eventData instanceof String){eventData=eventData.trim();if(eventData[0]==='['){eventData=eventData.replace(/\s*,\s*$/,'');if(eventData[eventData.length-1]!==']'){eventData=eventData+']';}} this.events_=JSON.parse(eventData);this.eventsWereFromString_=true;}else{this.events_=eventData;} if(this.events_.traceEvents){const container=this.events_;this.events_=this.events_.traceEvents;for(const subtraceField of SUBTRACE_FIELDS){if(container[subtraceField]){this.storeSubtrace_(container[subtraceField]);}} this.storeSamples_(container.samples);this.storeStackFrames_(container.stackFrames);this.storeDisplayTimeUnit_(container.displayTimeUnit);this.storeTraceAnnotations_(container.traceAnnotations);this.storeMetadata_(container);}else if(this.events_ instanceof tr.b.TraceStream){const parser=oboe().node('{cat ph}',function(e){return oboe.drop;}).node('!.powerTraceAsString',this.storeSubtrace_.bind(this)).node('!.systemTraceEvents',this.storeSubtrace_.bind(this)).node('!.samples',this.storeSamples_.bind(this)).node('!.stackFrames',this.storeStackFrames_.bind(this)).node('!.displayTimeUnit',this.storeDisplayTimeUnit_.bind(this)).node('!.traceAnnotations',this.storeTraceAnnotations_.bind(this)).done(this.storeMetadata_.bind(this));this.events_.rewind();while(this.events_.hasData){parser.write(this.events_.readNumBytes());} @@ -5852,9 +5540,9 @@ if(ctr.numSeries===0){this.model_.importWarning({type:'counter_parse_error',message:'Expected counter '+event.name+' to have at least one argument to use as a value.'});delete ctr.parent.counters[ctr.name];return;}} const ts=this.toModelTimeFromUs_(event.ts);ctr.series.forEach(function(series){const val=event.args[series.name]?event.args[series.name]:0;series.addCounterSample(ts,val);});},processObjectEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);this.allObjectEvents_.push({sequenceNumber:this.allObjectEvents_.length,event,thread});if(thread.guid in this.contextProcessorPerThread){const processor=this.contextProcessorPerThread[thread.guid];const scopedId=TraceEventImporter.scopedIdForEvent_(event);if(event.ph==='D'){processor.destroyContext(scopedId);} processor.invalidateContextCacheForSnapshot(scopedId);}},processContextEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);if(!(thread.guid in this.contextProcessorPerThread)){this.contextProcessorPerThread[thread.guid]=new tr.importer.ContextProcessor(this.model_);} -const scopedId=TraceEventImporter.scopedIdForEvent_(event);const contextType=event.name;const processor=this.contextProcessorPerThread[thread.guid];if(event.ph==='('){processor.enterContext(contextType,scopedId);}else if(event.ph===')'){processor.leaveContext(contextType,scopedId);}else{this.model_.importWarning({type:'unknown_context_phase',message:'Unknown context event phase: '+event.ph+'.'});}},setContextsFromThread_(thread,slice){if(thread.guid in this.contextProcessorPerThread){slice.contexts=this.contextProcessorPerThread[thread.guid].activeContexts;}},processDurationEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);const ts=this.toModelTimeFromUs_(event.ts);if(event.dur===0&&!thread.sliceGroup.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'duration_parse_error',message:'Timestamps are moving backward.'});return;} -if(event.ph==='B'){const slice=thread.sliceGroup.beginSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),this.toModelTimeFromUs_(event.tts),event.argsStripped,getEventColor(event),event.bind_id);slice.startStackFrame=this.getStackFrameForEvent_(event);this.setContextsFromThread_(thread,slice);}else if(event.ph==='I'||event.ph==='i'||event.ph==='R'){if(event.s!==undefined&&event.s!=='t'){throw new Error('This should never happen');} -thread.sliceGroup.beginSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),this.toModelTimeFromUs_(event.tts),event.argsStripped,getEventColor(event),event.bind_id);const slice=thread.sliceGroup.endSlice(this.toModelTimeFromUs_(event.ts),this.toModelTimeFromUs_(event.tts));slice.startStackFrame=this.getStackFrameForEvent_(event);slice.endStackFrame=undefined;}else{if(!thread.sliceGroup.openSliceCount){this.model_.importWarning({type:'duration_parse_error',message:'E phase event without a matching B phase event.'});return;} +const scopedId=TraceEventImporter.scopedIdForEvent_(event);const contextType=event.name;const processor=this.contextProcessorPerThread[thread.guid];if(event.ph==='('){processor.enterContext(contextType,scopedId);}else if(event.ph===')'){processor.leaveContext(contextType,scopedId);}else{this.model_.importWarning({type:'unknown_context_phase',message:'Unknown context event phase: '+event.ph+'.'});}},setContextsFromThread_(thread,slice){if(thread.guid in this.contextProcessorPerThread){slice.contexts=this.contextProcessorPerThread[thread.guid].activeContexts;}},processDurationEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);const ts=this.toModelTimeFromUs_(event.ts);if(!thread.sliceGroup.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'duration_parse_error',message:'Timestamps are moving backward.'});return;} +if(event.ph==='B'){const slice=thread.sliceGroup.beginSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),this.toModelTimeFromUs_(event.tts),event.argsStripped,getEventColor(event));slice.startStackFrame=this.getStackFrameForEvent_(event);this.setContextsFromThread_(thread,slice);}else if(event.ph==='I'||event.ph==='i'||event.ph==='R'){if(event.s!==undefined&&event.s!=='t'){throw new Error('This should never happen');} +thread.sliceGroup.beginSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),this.toModelTimeFromUs_(event.tts),event.argsStripped,getEventColor(event));const slice=thread.sliceGroup.endSlice(this.toModelTimeFromUs_(event.ts),this.toModelTimeFromUs_(event.tts));slice.startStackFrame=this.getStackFrameForEvent_(event);slice.endStackFrame=undefined;}else{if(!thread.sliceGroup.openSliceCount){this.model_.importWarning({type:'duration_parse_error',message:'E phase event without a matching B phase event.'});return;} const slice=thread.sliceGroup.endSlice(this.toModelTimeFromUs_(event.ts),this.toModelTimeFromUs_(event.tts),getEventColor(event));if(event.name&&slice.title!==event.name){this.model_.importWarning({type:'title_match_error',message:'Titles do not match. Title is '+ slice.title+' in openSlice, and is '+ event.name+' in endSlice'});} @@ -5867,8 +5555,9 @@ this.softwareMeasuredCpuCount_=n;}else if(event.name==='stackFrames'){const stackFrames=event.args.stackFrames;if(stackFrames===undefined){this.model_.importWarning({type:'metadata_parse_error',message:'No stack frames found in a \''+event.name+'\' metadata event'});}else{this.importStackFrames_(stackFrames,'p'+event.pid+':');}}else if(event.name==='typeNames'){const objectTypeNameMap=event.args.typeNames;if(objectTypeNameMap===undefined){this.model_.importWarning({type:'metadata_parse_error',message:'No mapping from object type IDs to names found in a \''+ event.name+'\' metadata event'});}else{this.importObjectTypeNameMap_(objectTypeNameMap,event.pid);}}else if(event.name==='TraceConfig'){this.model_.metadata.push({name:'TraceConfig',value:event.args.value});}else{this.model_.importWarning({type:'metadata_parse_error',message:'Unrecognized metadata name: '+event.name});}},processInstantEvent(event){if(event.name==='JitCodeAdded'||event.name==='JitCodeMoved'){this.v8SamplingData_.push(event);return;} if(event.s==='t'||event.s===undefined){this.processDurationEvent(event);return;} -let constructor;let parent;switch(event.s){case'g':constructor=tr.model.GlobalInstantEvent;parent=this.model_;break;case'p':constructor=tr.model.ProcessInstantEvent;parent=this.model_.getOrCreateProcess(event.pid);break;default:this.model_.importWarning({type:'instant_parse_error',message:'I phase event with unknown "s" field value.'});return;} -const instantEvent=new constructor(event.cat,event.name,getEventColor(event),this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),parent);parent.instantEvents.push(instantEvent);},getOrCreateProfileTree_(sampleType,id){if(!this.profileTrees_.has(sampleType)){this.profileTrees_.set(sampleType,new Map());} +let constructor;switch(event.s){case'g':constructor=tr.model.GlobalInstantEvent;break;case'p':constructor=tr.model.ProcessInstantEvent;break;default:this.model_.importWarning({type:'instant_parse_error',message:'I phase event with unknown "s" field value.'});return;} +const instantEvent=new constructor(event.cat,event.name,getEventColor(event),this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args));switch(instantEvent.type){case tr.model.InstantEventType.GLOBAL:this.model_.instantEvents.push(instantEvent);break;case tr.model.InstantEventType.PROCESS:{const process=this.model_.getOrCreateProcess(event.pid);process.instantEvents.push(instantEvent);break;} +default:throw new Error('Unknown instant event type: '+event.s);}},getOrCreateProfileTree_(sampleType,id){if(!this.profileTrees_.has(sampleType)){this.profileTrees_.set(sampleType,new Map());} const profileTreeMap=this.profileTrees_.get(sampleType);if(profileTreeMap.has(id)){return profileTreeMap.get(id);} const profileTree=new tr.model.ProfileTree();profileTreeMap.set(id,profileTree);const info=this.profileInfo_.get(id);if(info!==undefined){profileTree.startTime=info.startTime;profileTree.pid=info.pid;profileTree.tid=info.tid;} return profileTree;},processSample(event){if(event.args===undefined||event.args.data===undefined){return;} @@ -5934,8 +5623,7 @@ if(event.cat===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async events (ph: b, e, or n) require a '+'cat parameter.'});continue;} if(event.name===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async events (ph: b, e, or n) require a '+'name parameter.'});continue;} const id=TraceEventImporter.scopedIdForEvent_(event);if(id===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async events (ph: b, e, or n) require an '+'id parameter.'});continue;} -if(event.cat==='blink.user_timing'){const matched=MEASURE_NAME_REGEX.exec(event.name);if(matched!==null){const key=matched[1]+':'+event.cat;try{event.args=JSON.parse(Base64.atob(matched[3])||'{}');}catch(e){} -if(nestableMeasureAsyncEventsByKey[key]===undefined){nestableMeasureAsyncEventsByKey[key]=[];} +if(event.cat==='blink.user_timing'){const matched=/([^\/:]+):([^\/:]+)\/?(.*)/.exec(event.name);if(matched!==null){const key=matched[1]+':'+event.cat;event.args=JSON.parse(Base64.atob(matched[3])||'{}');if(nestableMeasureAsyncEventsByKey[key]===undefined){nestableMeasureAsyncEventsByKey[key]=[];} nestableMeasureAsyncEventsByKey[key].push(asyncEventState);continue;}} const key=event.cat+':'+id.toStringWithDelimiter(':');if(nestableAsyncEventsByKey[key]===undefined){nestableAsyncEventsByKey[key]=[];} nestableAsyncEventsByKey[key].push(asyncEventState);} @@ -5996,13 +5684,13 @@ flowStatus[event.bind_id]=false;if(event.flowPhase===STEP){if(!processFlowProducer(flowIdToEvent,flowStatus,event,slice)){continue;} flowStatus[event.bind_id]=true;}} continue;} -const fullFlowId=JSON.stringify({id:event.id,cat:event.cat,name:event.name});let flowEvent;if(event.ph==='s'){if(flowIdToEvent[fullFlowId]){this.model_.importWarning({type:'flow_slice_start_error',message:'event id '+event.id+' already seen when '+'encountering start of flow event.'});continue;} +let flowEvent;if(event.ph==='s'){if(flowIdToEvent[event.id]){this.model_.importWarning({type:'flow_slice_start_error',message:'event id '+event.id+' already seen when '+'encountering start of flow event.'});continue;} flowEvent=createFlowEvent(thread,event);if(!flowEvent){this.model_.importWarning({type:'flow_slice_start_error',message:'event id '+event.id+' does not start '+'at an actual slice, so cannot be created.'});continue;} -flowIdToEvent[fullFlowId]=flowEvent;}else if(event.ph==='t'||event.ph==='f'){flowEvent=flowIdToEvent[fullFlowId];if(flowEvent===undefined){this.model_.importWarning({type:'flow_slice_ordering_error',message:'Found flow phase '+event.ph+' for id: '+event.id+' but no flow start found.'});continue;} +flowIdToEvent[event.id]=flowEvent;}else if(event.ph==='t'||event.ph==='f'){flowEvent=flowIdToEvent[event.id];if(flowEvent===undefined){this.model_.importWarning({type:'flow_slice_ordering_error',message:'Found flow phase '+event.ph+' for id: '+event.id+' but no flow start found.'});continue;} let bindToParent=event.ph==='t';if(event.ph==='f'){if(event.bp===undefined){if(event.cat.indexOf('input')>-1){bindToParent=true;}else if(event.cat.indexOf('ipc.flow')>-1){bindToParent=true;}}else{if(event.bp!=='e'){this.model_.importWarning({type:'flow_slice_bind_point_error',message:'Flow event with invalid binding point (event.bp).'});continue;} bindToParent=true;}} const ok=finishFlowEventWith(flowEvent,thread,event,refGuid,bindToParent);if(ok){this.model_.flowEvents.push(flowEvent);}else{this.model_.importWarning({type:'flow_slice_end_error',message:'event id '+event.id+' does not end '+'at an actual slice, so cannot be created.'});} -flowIdToEvent[fullFlowId]=undefined;if(ok&&event.ph==='t'){flowEvent=createFlowEvent(thread,event);flowIdToEvent[fullFlowId]=flowEvent;}}}},createExplicitObjects_(){if(this.allObjectEvents_.length===0)return;const processEvent=function(objectEventState){const event=objectEventState.event;const scopedId=TraceEventImporter.scopedIdForEvent_(event);const thread=objectEventState.thread;if(event.name===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+JSON.stringify(event)+': '+'Object events require an name parameter.'});} +flowIdToEvent[event.id]=undefined;if(ok&&event.ph==='t'){flowEvent=createFlowEvent(thread,event);flowIdToEvent[event.id]=flowEvent;}}}},createExplicitObjects_(){if(this.allObjectEvents_.length===0)return;const processEvent=function(objectEventState){const event=objectEventState.event;const scopedId=TraceEventImporter.scopedIdForEvent_(event);const thread=objectEventState.thread;if(event.name===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+JSON.stringify(event)+': '+'Object events require an name parameter.'});} if(scopedId===undefined||scopedId.id===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+JSON.stringify(event)+': '+'Object events require an id parameter.'});} const process=thread.parent;const ts=this.toModelTimeFromUs_(event.ts);let instance;if(event.ph==='N'){try{instance=process.objects.idWasCreated(scopedId,event.cat,event.name,ts);}catch(e){this.model_.importWarning({type:'object_parse_error',message:'While processing create of '+ scopedId+' at ts='+ts+': '+e});return;}}else if(event.ph==='O'){if(event.args.snapshot===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+scopedId+' at ts='+ts+': '+'Snapshots must have args: {snapshot: ...}'});return;} @@ -6093,7 +5781,9 @@ sourceDump.owns.target.fullName+').'});}else{sourceDump.owns=edge;targetDump.ownedBy.push(edge);} break;case'retention':sourceDump.retains.push(edge);targetDump.retainedBy.push(edge);break;default:this.model_.importWarning({type:'memory_dump_parse_error',message:'Invalid edge type: '+rawEdge.type+' (PID='+pid+', dump ID='+dumpId+', source='+sourceGuid+', target='+targetGuid+', importance='+importance+').'});}}}}},toModelTimeFromUs_(ts){if(!this.toModelTime_){this.toModelTime_=this.model_.clockSyncManager.getModelTimeTransformer(this.clockDomainId_);} return this.toModelTime_(tr.b.Unit.timestampFromUs(ts));},maybeToModelTimeFromUs_(ts){if(ts===undefined){return undefined;} -return this.toModelTimeFromUs_(ts);}};tr.importer.Importer.register(TraceEventImporter);return{TraceEventImporter,};});'use strict';tr.exportTo('tr.e.net',function(){const AsyncSlice=tr.model.AsyncSlice;function NetAsyncSlice(){AsyncSlice.apply(this,arguments);this.url_=undefined;this.byteCount_=undefined;this.isTitleComputed_=false;this.isUrlComputed_=false;} +return this.toModelTimeFromUs_(ts);}};tr.importer.Importer.register(TraceEventImporter);return{TraceEventImporter,};});'use strict';tr.exportTo('tr.e.measure',function(){const AsyncSlice=tr.model.AsyncSlice;function MeasureAsyncSlice(){this.groupTitle_='Ungrouped Measure';const matched=/([^\/:]+):([^\/:]+)\/?(.*)/.exec(arguments[1]);if(matched!==null){arguments[1]=matched[2];this.groupTitle_=matched[1];} +AsyncSlice.apply(this,arguments);} +MeasureAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get viewSubGroupTitle(){return this.groupTitle_;},get title(){return this.title_;},set title(title){this.title_=title;}};AsyncSlice.subTypes.register(MeasureAsyncSlice,{categoryParts:['blink.user_timing']});return{MeasureAsyncSlice,};});'use strict';tr.exportTo('tr.e.net',function(){const AsyncSlice=tr.model.AsyncSlice;function NetAsyncSlice(){AsyncSlice.apply(this,arguments);this.url_=undefined;this.byteCount_=undefined;this.isTitleComputed_=false;this.isUrlComputed_=false;} NetAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get viewSubGroupTitle(){return'NetLog';},get title(){if(this.isTitleComputed_||!this.isTopLevel){return this.title_;} if(this.url!==undefined&&this.url.length>0){this.title_=this.url;}else if(this.args!==undefined&&this.args.source_type!==undefined){this.title_=this.args.source_type;} this.isTitleComputed_=true;return this.title_;},set title(title){this.title_=title;},get url(){if(this.isUrlComputed_){return this.url_;} @@ -6122,7 +5812,7 @@ case'S':{const ppid=parseInt(eventData[1]);const name=eventData[2];const cookie=parseInt(eventData[3]);const args=parseArgs(eventData[4]);let category=eventData[5];if(category===undefined)category='android';const thread=this.model_.getOrCreateProcess(ppid).getOrCreateThread(pid);thread.name=eventBase.threadName;this.ppids_[pid]=ppid;this.openAsyncSlice(thread,category,name,cookie,ts,args);break;} case'F':{const ppid=parseInt(eventData[1]);const name=eventData[2];const cookie=parseInt(eventData[3]);const args=parseArgs(eventData[4]);let category=eventData[5];if(category===undefined)category='android';const thread=this.model_.getOrCreateProcess(ppid).getOrCreateThread(pid);thread.name=eventBase.threadName;this.ppids_[pid]=ppid;this.closeAsyncSlice(thread,category,name,cookie,ts,args);break;} default:return false;} -return true;}};Parser.register(AndroidParser);return{AndroidParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;const binderTransRE=new RegExp('transaction=(\\d+) dest_node=(\\d+) '+'dest_proc=(\\d+) dest_thread=(\\d+) '+'reply=(\\d+) flags=(0x[0-9a-fA-F]+) '+'code=(0x[0-9a-fA-F]+)');const binderAllocRE=new RegExp('transaction=(\\d+) data_size=(\\d+) '+'offsets_size=(\\d+)');const binderTransReceivedRE=/transaction=(\d+)/;function isBinderThread(name){return(name.indexOf('Binder')>-1);} +return true;}};Parser.register(AndroidParser);return{AndroidParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;const binderTransRE=new RegExp('transaction=(\\d+) dest_node=(\\d+) '+'dest_proc=(\\d+) dest_thread=(\\d+) '+'reply=(\\d+) flags=(0x[0-9a-fA-F]+) '+'code=(0x[0-9a-fA-F]+)');const binderTransReceivedRE=/transaction=(\d+)/;function isBinderThread(name){return(name.indexOf('Binder')>-1);} const TF_ONE_WAY=0x01;const TF_ROOT_OBJECT=0x04;const TF_STATUS_CODE=0x08;const TF_ACCEPT_FDS=0x10;const NO_FLAGS=0;function binderFlagsToHuman(num){const flag=parseInt(num,16);let str='';if(flag&TF_ONE_WAY){str+='this is a one-way call: async, no return; ';} if(flag&TF_ROOT_OBJECT){str+='contents are the components root object; ';} if(flag&TF_STATUS_CODE){str+='contents are a 32-bit status code; ';} @@ -6137,7 +5827,7 @@ binderFlagsToHuman(trans.flags),'Code':trans.code+' '+ binderCodeToHuman(trans.code),'Calling PID':trans.calling_pid,'Calling tgid':trans.calling_kthread.thread.parent.pid};} function BinderTransaction(events,callingPid,callingTs,callingKthread){this.transaction_key=parseInt(events[1]);this.dest_node=parseInt(events[2]);this.dest_proc=parseInt(events[3]);this.dest_thread=parseInt(events[4]);this.is_reply_transaction=parseInt(events[5])===1?true:false;this.expect_reply=((this.is_reply_transaction===false)&&(parseInt(events[6],16)&TF_ONE_WAY)===0);this.flags=events[6];this.code=events[7];this.calling_pid=callingPid;this.calling_ts=callingTs;this.calling_kthread=callingKthread;} -function BinderParser(importer){Parser.call(this,importer);importer.registerEventHandler('binder_locked',BinderParser.prototype.binderLocked.bind(this));importer.registerEventHandler('binder_unlock',BinderParser.prototype.binderUnlock.bind(this));importer.registerEventHandler('binder_lock',BinderParser.prototype.binderLock.bind(this));importer.registerEventHandler('binder_transaction',BinderParser.prototype.binderTransaction.bind(this));importer.registerEventHandler('binder_transaction_received',BinderParser.prototype.binderTransactionReceived.bind(this));importer.registerEventHandler('binder_transaction_alloc_buf',BinderParser.prototype.binderTransactionAllocBuf.bind(this));this.model_=importer.model;this.kthreadlookup={};this.importer_=importer;this.transWaitingRecv={};this.syncTransWaitingCompletion={};this.recursiveSyncTransWaitingCompletion_ByPID={};this.receivedTransWaitingConversion={};} +function BinderParser(importer){Parser.call(this,importer);importer.registerEventHandler('binder_locked',BinderParser.prototype.binderLocked.bind(this));importer.registerEventHandler('binder_unlock',BinderParser.prototype.binderUnlock.bind(this));importer.registerEventHandler('binder_lock',BinderParser.prototype.binderLock.bind(this));importer.registerEventHandler('binder_transaction',BinderParser.prototype.binderTransaction.bind(this));importer.registerEventHandler('binder_transaction_received',BinderParser.prototype.binderTransactionReceived.bind(this));this.model_=importer.model;this.kthreadlookup={};this.importer_=importer;this.transWaitingRecv={};this.syncTransWaitingCompletion={};this.recursiveSyncTransWaitingCompletion_ByPID={};this.receivedTransWaitingConversion={};} BinderParser.prototype={__proto__:Parser.prototype,binderLock(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;this.doNameMappings(pid,tgid,eventName.threadName);const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);kthread.binderAttemptLockTS=ts;kthread.binderOpenTsA=ts;return true;},binderLocked(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;const binderThread=isBinderThread(eventBase.threadName);const name=eventBase.threadName;const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);this.doNameMappings(pid,tgid,name);const rthread=kthread.thread;kthread.binderLockAquiredTS=ts;if(kthread.binderAttemptLockTS===undefined)return false;const args=this.generateArgsForSlice(tgid,pid,name,kthread);rthread.sliceGroup.pushCompleteSlice('binder','binder lock waiting',kthread.binderAttemptLockTS,ts-kthread.binderAttemptLockTS,0,0,args);kthread.binderAttemptLockTS=undefined;return true;},binderUnlock(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);if(kthread.binderLockAquiredTS===undefined)return false;const args=this.generateArgsForSlice(tgid,pid,eventBase.threadName,kthread);kthread.thread.sliceGroup.pushCompleteSlice('binder','binder lock held',kthread.binderLockAquiredTS,ts-kthread.binderLockAquiredTS,0,0,args);kthread.binderLockAquiredTS=undefined;return true;},binderTransaction(eventName,cpuNumber,pid,ts,eventBase){const event=binderTransRE.exec(eventBase.details);if(event===undefined)return false;const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;this.doNameMappings(pid,tgid,eventBase.threadName);const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);const trans=new BinderTransaction(event,pid,ts,kthread);const args=generateBinderArgsForSlice(trans,eventBase.threadName);const priorReceive=this.getPriorReceiveOnPID(pid);if(priorReceive!==false){return this.modelPriorReceive(priorReceive,ts,pid,tgid,kthread,trans,args,event);} const recursiveTrans=this.getRecursiveTransactionNeedingCompletion(pid);if(recursiveTrans!==false){return this.modelRecursiveTransactions(recursiveTrans,ts,pid,kthread,trans,args);} const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',ts,.03,0,0,args);slice.colorId=ColorScheme.getColorIdForGeneralPurposeString(ts.toString());trans.slice=slice;if(trans.expect_reply){slice.title='binder transaction';}else{slice.title='binder transaction async';} @@ -6146,16 +5836,15 @@ return true;} const trForRecv=this.getTransactionWaitingForRecv(transactionkey);if(trForRecv!==false){if(!trForRecv.expect_reply){const args=generateBinderArgsForSlice(trForRecv,eventBase.threadName);const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','binder Async recv',ts,.03,0,0,args);const fakeEvent=[0,0,0,0,0,0,0];const fakeTrans=new BinderTransaction(fakeEvent,pid,ts,kthread);const flow=this.generateFlow(trForRecv.slice,slice,trForRecv,fakeTrans);this.model_.flowEvents.push(flow);trForRecv.slice.title='binder transaction async';trForRecv.slice.duration=.03;return true;} trForRecv.slice.title='binder transaction';this.setCurrentReceiveOnPID(pid,[ts,trForRecv]);return true;} -return false;},binderTransactionAllocBuf(eventName,cpuNumber,pid,ts,eventBase){const event=binderAllocRE.exec(eventBase.details);if(event===null)return false;const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;const transactionkey=parseInt(event[1]);const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);const trans=this.peekTransactionWaitingForRecv(transactionkey);if(trans&&trans.slice){trans.slice.args['Data Size']=parseInt(event[2]);trans.slice.args['Offsets Size']=parseInt(event[3]);return true;} -return false;},modelRecursiveTransactions(recursiveTrans,ts,pid,kthread,trans,args){const recursiveSlice=recursiveTrans[1].slice;const origSlice=recursiveTrans[0].slice;recursiveSlice.duration=ts-recursiveSlice.start;recursiveSlice.args=args;trans.slice=recursiveSlice;if(trans.is_reply_transaction){origSlice.duration=ts-origSlice.start;this.addSyncTransNeedingCompletion(trans.transaction_key,recursiveTrans);if(isReplyToOrigin(recursiveTrans[0],trans)){this.removeRecursiveTransaction(pid);}}else{const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',ts,.03,0,0,args);trans.slice=slice;this.addTransactionWaitingForRecv(trans.transaction_key,trans);} -return true;},modelPriorReceive(priorReceive,ts,pid,tgid,kthread,trans,args,event){const calleeSlice=priorReceive[1].slice;const calleeTrans=priorReceive[1];const recvTs=priorReceive[0];let slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',recvTs,ts-recvTs,0,0);const flow=this.generateFlow(calleeSlice,slice,calleeTrans,trans);this.model_.flowEvents.push(flow);trans.slice=slice;if(trans.is_reply_transaction){slice.title='binder reply';slice.args=args;this.addSyncTransNeedingCompletion(trans.transaction_key,[calleeTrans,trans]);}else{slice.title='binder reply';const trans1=new BinderTransaction(event,pid,ts,kthread);slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','binder transaction',recvTs,(ts-recvTs),0,0,args);if(!trans.expect_reply){slice.title='binder transaction async';slice.duration=.03;}else{} +return false;},modelRecursiveTransactions(recursiveTrans,ts,pid,kthread,trans,args){const recursiveSlice=recursiveTrans[1].slice;const origSlice=recursiveTrans[0].slice;recursiveSlice.duration=ts-recursiveSlice.start;trans.slice=recursiveSlice;if(trans.is_reply_transaction){origSlice.duration=ts-origSlice.start;this.addSyncTransNeedingCompletion(trans.transaction_key,recursiveTrans);if(isReplyToOrigin(recursiveTrans[0],trans)){this.removeRecursiveTransaction(pid);}}else{const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',ts,.03,0,0,args);trans.slice=slice;this.addTransactionWaitingForRecv(trans.transaction_key,trans);} +return true;},modelPriorReceive(priorReceive,ts,pid,tgid,kthread,trans,args,event){const calleeSlice=priorReceive[1].slice;const calleeTrans=priorReceive[1];const recvTs=priorReceive[0];let slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',recvTs,ts-recvTs,0,0,args);const flow=this.generateFlow(calleeSlice,slice,calleeTrans,trans);this.model_.flowEvents.push(flow);trans.slice=slice;if(trans.is_reply_transaction){slice.title='binder reply';this.addSyncTransNeedingCompletion(trans.transaction_key,[calleeTrans,trans]);}else{slice.title='binder reply';const trans1=new BinderTransaction(event,pid,ts,kthread);slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','binder transaction',recvTs,(ts-recvTs),0,0,args);if(!trans.expect_reply){slice.title='binder transaction async';slice.duration=.03;}else{} trans1.slice=slice;this.addRecursiveSyncTransNeedingCompletion(pid,[calleeTrans,trans]);this.addTransactionWaitingForRecv(trans.transaction_key,trans1);} return true;},getRecursiveTransactionNeedingCompletion(pid){if(this.recursiveSyncTransWaitingCompletion_ByPID[pid]===undefined){return false;} const len=this.recursiveSyncTransWaitingCompletion_ByPID[pid].length;if(len===0)return false;return this.recursiveSyncTransWaitingCompletion_ByPID[pid][len-1];},addRecursiveSyncTransNeedingCompletion(pid,tuple){if(this.recursiveSyncTransWaitingCompletion_ByPID[pid]===undefined){this.recursiveSyncTransWaitingCompletion_ByPID[pid]=[];} this.recursiveSyncTransWaitingCompletion_ByPID[pid].push(tuple);},removeRecursiveTransaction(pid){const len=this.recursiveSyncTransWaitingCompletion_ByPID[pid].length;if(len===0){delete this.recursiveSyncTransWaitingCompletion_ByPID[pid];return;} this.recursiveSyncTransWaitingCompletion_ByPID[pid].splice(len-1,1);},setCurrentReceiveOnPID(pid,tuple){if(this.receivedTransWaitingConversion[pid]===undefined){this.receivedTransWaitingConversion[pid]=[];} this.receivedTransWaitingConversion[pid].push(tuple);},getPriorReceiveOnPID(pid){if(this.receivedTransWaitingConversion[pid]===undefined){return false;} -const len=this.receivedTransWaitingConversion[pid].length;if(len===0)return false;return this.receivedTransWaitingConversion[pid].splice(len-1,1)[0];},addSyncTransNeedingCompletion(transactionkey,tuple){const dict=this.syncTransWaitingCompletion;dict[transactionkey]=tuple;},getSyncTransNeedsCompletion(transactionkey){const ret=this.syncTransWaitingCompletion[transactionkey];if(ret===undefined)return false;delete this.syncTransWaitingCompletion[transactionkey];return ret;},getTransactionWaitingForRecv(transactionkey){const ret=this.transWaitingRecv[transactionkey];if(ret===undefined)return false;delete this.transWaitingRecv[transactionkey];return ret;},peekTransactionWaitingForRecv(transactionkey){const ret=this.transWaitingRecv[transactionkey];if(ret===undefined)return false;return ret;},addTransactionWaitingForRecv(transactionkey,transaction){this.transWaitingRecv[transactionkey]=transaction;},generateFlow(from,to,fromTrans,toTrans){const title='Transaction from : '+ +const len=this.receivedTransWaitingConversion[pid].length;if(len===0)return false;return this.receivedTransWaitingConversion[pid].splice(len-1,1)[0];},addSyncTransNeedingCompletion(transactionkey,tuple){const dict=this.syncTransWaitingCompletion;dict[transactionkey]=tuple;},getSyncTransNeedsCompletion(transactionkey){const ret=this.syncTransWaitingCompletion[transactionkey];if(ret===undefined)return false;delete this.syncTransWaitingCompletion[transactionkey];return ret;},getTransactionWaitingForRecv(transactionkey){const ret=this.transWaitingRecv[transactionkey];if(ret===undefined)return false;delete this.transWaitingRecv[transactionkey];return ret;},addTransactionWaitingForRecv(transactionkey,transaction){this.transWaitingRecv[transactionkey]=transaction;},generateFlow(from,to,fromTrans,toTrans){const title='Transaction from : '+ this.pid2name(fromTrans.calling_pid)+' From PID: '+fromTrans.calling_pid+' to pid: '+ toTrans.calling_pid+' Thread Name: '+this.pid2name(toTrans.calling_pid);const ts=from.start;const flow=new tr.model.FlowEvent('binder','binder',title,1,ts,[]);flow.startSlice=from;flow.endSlice=to;flow.start=from.start;flow.duration=to.start-ts;from.outFlowEvents.push(flow);to.inFlowEvents.push(flow);return flow;},generateArgsForSlice(tgid,pid,name,kthread){return{'Thread Name':name,pid,'gid':tgid};},pid2name(pid){return this.kthreadlookup[pid];},doNameMappings(pid,tgid,name){this.registerPidName(pid,name);this.registerPidName(tgid,name);},registerPidName(pid,name){if(this.pid2name(pid)===undefined){this.kthreadlookup[pid]=name;}}};Parser.register(BinderParser);return{BinderParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function BusParser(importer){Parser.call(this,importer);importer.registerEventHandler('memory_bus_usage',BusParser.prototype.traceMarkWriteBusEvent.bind(this));this.model_=importer.model_;this.ppids_={};} BusParser.prototype={__proto__:Parser.prototype,traceMarkWriteBusEvent(eventName,cpuNumber,pid,ts,eventBase,threadName){const re=new RegExp('bus=(\\S+) rw_bytes=(\\d+) r_bytes=(\\d+) '+'w_bytes=(\\d+) cycles=(\\d+) ns=(\\d+)');const event=re.exec(eventBase.details);const name=event[1];const rwBytes=parseInt(event[2]);const rBytes=parseInt(event[3]);const wBytes=parseInt(event[4]);const cycles=parseInt(event[5]);const ns=parseInt(event[6]);const sec=tr.b.convertUnit(ns,tr.b.UnitPrefixScale.METRIC.NANO,tr.b.UnitPrefixScale.METRIC.NONE);const readBandwidthInBps=rBytes/sec;const readBandwidthInMiBps=tr.b.convertUnit(readBandwidthInBps,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI);const writeBandwidthInBps=wBytes/sec;const writeBandwidthInMiBps=tr.b.convertUnit(writeBandwidthInBps,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI);let ctr=this.model_.kernel.getOrCreateCounter(null,'bus '+name+' read');if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries('value',ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));} @@ -6173,20 +5862,7 @@ if(event[5]==='A'){action+=' ahead';} if(event[6]==='S'){action+=' sync';} if(event[7]==='M'){action+=' meta';} -const device=event[1];const sector=parseInt(event[8]);const numSectors=parseInt(event[9]);const key=device+'-'+sector+'-'+numSectors;this.openAsyncSlice(ts,'block',eventBase.threadName,eventBase.pid,key,action);return true;},blockRqCompleteEvent(eventName,cpuNumber,pid,ts,eventBase){const event=new RegExp('(\\d+,\\d+) (F)?([DWRN])(F)?(A)?(S)?(M)? '+'\\(.*\\) (\\d+) \\+ (\\d+) \\[(.*)\\]').exec(eventBase.details);if(!event)return false;const device=event[1];const sector=parseInt(event[8]);const numSectors=parseInt(event[9]);const error=parseInt(event[10]);const key=device+'-'+sector+'-'+numSectors;this.closeAsyncSlice(ts,'block',eventBase.threadName,eventBase.pid,key,{device,sector,numSectors,error});return true;}};Parser.register(DiskParser);return{DiskParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function DmaFenceParser(importer){Parser.call(this,importer);this.model_=importer.model_;importer.registerEventHandler('dma_fence_init',DmaFenceParser.prototype.initEvent.bind(this));importer.registerEventHandler('dma_fence_emit',DmaFenceParser.prototype.initEvent.bind(this));importer.registerEventHandler('dma_fence_destroy',DmaFenceParser.prototype.fenceDestroyEvent.bind(this));importer.registerEventHandler('dma_fence_enable_signal',DmaFenceParser.prototype.fenceEnableSignalEvent.bind(this));importer.registerEventHandler('dma_fence_signaled',DmaFenceParser.prototype.fenceSignaledEvent.bind(this));importer.registerEventHandler('dma_fence_wait_start',DmaFenceParser.prototype.fenceWaitEvent.bind(this));importer.registerEventHandler('dma_fence_wait_end',DmaFenceParser.prototype.fenceWaitEvent.bind(this));importer.registerEventHandler('fence_init',DmaFenceParser.prototype.initEvent.bind(this));importer.registerEventHandler('fence_emit',DmaFenceParser.prototype.initEvent.bind(this));importer.registerEventHandler('fence_destroy',DmaFenceParser.prototype.fenceDestroyEvent.bind(this));importer.registerEventHandler('fence_enable_signal',DmaFenceParser.prototype.fenceEnableSignalEvent.bind(this));importer.registerEventHandler('fence_signaled',DmaFenceParser.prototype.fenceSignaledEvent.bind(this));importer.registerEventHandler('fence_wait_start',DmaFenceParser.prototype.fenceWaitEvent.bind(this));importer.registerEventHandler('fence_wait_end',DmaFenceParser.prototype.fenceWaitEvent.bind(this));this.model_=importer.model_;} -const fenceRE=/driver=(\S+) timeline=(\S+) context=(\d+) seqno=(\d+)/;DmaFenceParser.prototype={__proto__:Parser.prototype,initEvent(eventName,cpuNumber,pid,ts,eventBase){const event=fenceRE.exec(eventBase.details);if(!event)return false;if(eventBase.tgid===undefined){return false;} -const thread=this.importer.getOrCreatePseudoThread(event[2]);thread.lastActiveTs=ts;return true;},fenceDestroyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=fenceRE.exec(eventBase.details);if(!event)return false;if(eventBase.tgid===undefined){return false;} -const thread=this.importer.getOrCreatePseudoThread(event[2]);const name='fence_destroy('+event[4]+')';const colorName='fence('+event[4]+')';if(thread.lastActiveTs!==undefined){const duration=ts-thread.lastActiveTs;const slice=new tr.model.ThreadSlice('',name,ColorScheme.getColorIdForGeneralPurposeString(colorName),thread.lastActiveTs,{driver:event[1],context:event[3]},duration);thread.thread.sliceGroup.pushSlice(slice);} -if(thread.thread.sliceGroup.openSliceCount>0){thread.thread.sliceGroup.endSlice(ts);} -thread.lastActiveTs=ts;},fenceEnableSignalEvent(eventName,cpuNumber,pid,ts,eventBase){const event=fenceRE.exec(eventBase.details);if(!event)return false;if(eventBase.tgid===undefined){return false;} -const thread=this.importer.getOrCreatePseudoThread(event[2]);const name='fence_enable('+event[4]+')';const colorName='fence('+event[4]+')';if(thread.lastActiveTs!==undefined){const duration=ts-thread.lastActiveTs;const slice=new tr.model.ThreadSlice('',name,ColorScheme.getColorIdForGeneralPurposeString(colorName),thread.lastActiveTs,{driver:event[1],context:event[3]},duration);thread.thread.sliceGroup.pushSlice(slice);} -if(thread.thread.sliceGroup.openSliceCount>0){thread.thread.sliceGroup.endSlice(ts);} -thread.lastActiveTs=ts;},fenceSignaledEvent(eventName,cpuNumber,pid,ts,eventBase){const event=fenceRE.exec(eventBase.details);if(!event)return false;if(eventBase.tgid===undefined){return false;} -const thread=this.importer.getOrCreatePseudoThread(event[2]);const name='fence_signal('+event[4]+')';const colorName='fence('+event[4]+')';if(thread.lastActiveTs!==undefined){const duration=ts-thread.lastActiveTs;const slice=new tr.model.ThreadSlice('',name,ColorScheme.getColorIdForGeneralPurposeString(colorName),thread.lastActiveTs,{driver:event[1],context:event[3]},duration);thread.thread.sliceGroup.pushSlice(slice);} -if(thread.thread.sliceGroup.openSliceCount>0){thread.thread.sliceGroup.endSlice(ts);} -thread.lastActiveTs=ts;return true;},fenceWaitEvent(eventName,cpuNumber,pid,ts,eventBase){if(eventBase.tgid===undefined)return false;const event=fenceRE.exec(eventBase.details);if(!event)return false;const tgid=parseInt(eventBase.tgid);const thread=this.model_.getOrCreateProcess(tgid).getOrCreateThread(pid);thread.name=eventBase.threadName;const slices=thread.kernelSliceGroup;if(!slices.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'parse_error',message:'Timestamps are moving backward.'});return false;} -const name='dma_fence_wait("'+event[2]+'")';if(eventName.endsWith('start')){const slice=slices.beginSlice(null,name,ts,{driver:event[1],context:event[3],seqno:event[4],});}else{if(slices.openSliceCount>0){slices.endSlice(ts);}} -return true;},};Parser.register(DmaFenceParser);return{DmaFenceParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function DrmParser(importer){Parser.call(this,importer);importer.registerEventHandler('drm_vblank_event',DrmParser.prototype.vblankEvent.bind(this));} +const device=event[1];const sector=parseInt(event[8]);const numSectors=parseInt(event[9]);const key=device+'-'+sector+'-'+numSectors;this.openAsyncSlice(ts,'block',eventBase.threadName,eventBase.pid,key,action);return true;},blockRqCompleteEvent(eventName,cpuNumber,pid,ts,eventBase){const event=new RegExp('(\\d+,\\d+) (F)?([DWRN])(F)?(A)?(S)?(M)? '+'\\(.*\\) (\\d+) \\+ (\\d+) \\[(.*)\\]').exec(eventBase.details);if(!event)return false;const device=event[1];const sector=parseInt(event[8]);const numSectors=parseInt(event[9]);const error=parseInt(event[10]);const key=device+'-'+sector+'-'+numSectors;this.closeAsyncSlice(ts,'block',eventBase.threadName,eventBase.pid,key,{device,sector,numSectors,error});return true;}};Parser.register(DiskParser);return{DiskParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function DrmParser(importer){Parser.call(this,importer);importer.registerEventHandler('drm_vblank_event',DrmParser.prototype.vblankEvent.bind(this));} DrmParser.prototype={__proto__:Parser.prototype,drmVblankSlice(ts,eventName,args){const kthread=this.importer.getOrCreatePseudoThread('drm_vblank');kthread.openSlice=eventName;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},vblankEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/crtc=(\d+), seq=(\d+)/.exec(eventBase.details);if(!event)return false;const crtc=parseInt(event[1]);const seq=parseInt(event[2]);this.drmVblankSlice(ts,'vblank:'+crtc,{crtc,seq});return true;}};Parser.register(DrmParser);return{DrmParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function ExynosParser(importer){Parser.call(this,importer);importer.registerEventHandler('exynos_busfreq_target_int',ExynosParser.prototype.busfreqTargetIntEvent.bind(this));importer.registerEventHandler('exynos_busfreq_target_mif',ExynosParser.prototype.busfreqTargetMifEvent.bind(this));importer.registerEventHandler('exynos_page_flip_state',ExynosParser.prototype.pageFlipStateEvent.bind(this));} ExynosParser.prototype={__proto__:Parser.prototype,exynosBusfreqSample(name,ts,frequency){const targetCpu=this.importer.getOrCreateCpu(0);const counter=targetCpu.getOrCreateCounter('',name);if(counter.numSeries===0){counter.addSeries(new tr.model.CounterSeries('frequency',ColorScheme.getColorIdForGeneralPurposeString(counter.name+'.'+'frequency')));} counter.series.forEach(function(series){series.addCounterSample(ts,frequency);});},busfreqTargetIntEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/frequency=(\d+)/.exec(eventBase.details);if(!event)return false;this.exynosBusfreqSample('INT Frequency',ts,parseInt(event[1]));return true;},busfreqTargetMifEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/frequency=(\d+)/.exec(eventBase.details);if(!event)return false;this.exynosBusfreqSample('MIF Frequency',ts,parseInt(event[1]));return true;},exynosPageFlipStateOpenSlice(ts,pipe,fb,state){const kthread=this.importer.getOrCreatePseudoThread('exynos_flip_state (pipe:'+pipe+', fb:'+fb+')');kthread.openSliceTS=ts;kthread.openSlice=state;},exynosPageFlipStateCloseSlice(ts,pipe,fb,args){const kthread=this.importer.getOrCreatePseudoThread('exynos_flip_state (pipe:'+pipe+', fb:'+fb+')');if(kthread.openSlice){const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),kthread.openSliceTS,args,ts-kthread.openSliceTS);kthread.thread.sliceGroup.pushSlice(slice);} @@ -6203,10 +5879,7 @@ Parser.register(I2cParser);return{I2cParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function I915Parser(importer){Parser.call(this,importer);importer.registerEventHandler('i915_gem_object_create',I915Parser.prototype.gemObjectCreateEvent.bind(this));importer.registerEventHandler('i915_gem_object_bind',I915Parser.prototype.gemObjectBindEvent.bind(this));importer.registerEventHandler('i915_gem_object_unbind',I915Parser.prototype.gemObjectBindEvent.bind(this));importer.registerEventHandler('i915_gem_object_change_domain',I915Parser.prototype.gemObjectChangeDomainEvent.bind(this));importer.registerEventHandler('i915_gem_object_pread',I915Parser.prototype.gemObjectPreadWriteEvent.bind(this));importer.registerEventHandler('i915_gem_object_pwrite',I915Parser.prototype.gemObjectPreadWriteEvent.bind(this));importer.registerEventHandler('i915_gem_object_fault',I915Parser.prototype.gemObjectFaultEvent.bind(this));importer.registerEventHandler('i915_gem_object_clflush',I915Parser.prototype.gemObjectDestroyEvent.bind(this));importer.registerEventHandler('i915_gem_object_destroy',I915Parser.prototype.gemObjectDestroyEvent.bind(this));importer.registerEventHandler('i915_gem_ring_dispatch',I915Parser.prototype.gemRingDispatchEvent.bind(this));importer.registerEventHandler('i915_gem_ring_flush',I915Parser.prototype.gemRingFlushEvent.bind(this));importer.registerEventHandler('i915_gem_request',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_add',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_complete',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_retire',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_wait_begin',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_wait_end',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_ring_wait_begin',I915Parser.prototype.gemRingWaitEvent.bind(this));importer.registerEventHandler('i915_gem_ring_wait_end',I915Parser.prototype.gemRingWaitEvent.bind(this));importer.registerEventHandler('i915_reg_rw',I915Parser.prototype.regRWEvent.bind(this));importer.registerEventHandler('i915_flip_request',I915Parser.prototype.flipEvent.bind(this));importer.registerEventHandler('i915_flip_complete',I915Parser.prototype.flipEvent.bind(this));importer.registerEventHandler('intel_gpu_freq_change',I915Parser.prototype.gpuFrequency.bind(this));} I915Parser.prototype={__proto__:Parser.prototype,i915FlipOpenSlice(ts,obj,plane){const kthread=this.importer.getOrCreatePseudoThread('i915_flip');kthread.openSliceTS=ts;kthread.openSlice='flip:'+obj+'/'+plane;},i915FlipCloseSlice(ts,args){const kthread=this.importer.getOrCreatePseudoThread('i915_flip');if(kthread.openSlice){const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),kthread.openSliceTS,args,ts-kthread.openSliceTS);kthread.thread.sliceGroup.pushSlice(slice);} kthread.openSlice=undefined;},i915GemObjectSlice(ts,eventName,obj,args){const kthread=this.importer.getOrCreatePseudoThread('i915_gem');kthread.openSlice=eventName+':'+obj;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},i915GemRingSlice(ts,eventName,dev,ring,args){const kthread=this.importer.getOrCreatePseudoThread('i915_gem_ring');kthread.openSlice=eventName+':'+dev+'.'+ring;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},i915RegSlice(ts,eventName,reg,args){const kthread=this.importer.getOrCreatePseudoThread('i915_reg');kthread.openSlice=eventName+':'+reg;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},i915FreqChangeSlice(ts,eventName,args){const kthread=this.importer.getOrCreatePseudoThread('i915_gpu_freq');kthread.openSlice=eventName;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},gemObjectCreateEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), size=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const size=parseInt(event[2]);this.i915GemObjectSlice(ts,eventName,obj,{obj,size});return true;},gemObjectBindEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), offset=(\w+), size=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const offset=event[2];const size=parseInt(event[3]);this.i915ObjectGemSlice(ts,eventName+':'+obj,{obj,offset,size});return true;},gemObjectChangeDomainEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), read=(\w+=>\w+), write=(\w+=>\w+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const read=event[2];const write=event[3];this.i915GemObjectSlice(ts,eventName,obj,{obj,read,write});return true;},gemObjectPreadWriteEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), offset=(\d+), len=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const offset=parseInt(event[2]);const len=parseInt(event[3]);this.i915GemObjectSlice(ts,eventName,obj,{obj,offset,len});return true;},gemObjectFaultEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), (\w+) index=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const type=event[2];const index=parseInt(event[3]);this.i915GemObjectSlice(ts,eventName,obj,{obj,type,index});return true;},gemObjectDestroyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];this.i915GemObjectSlice(ts,eventName,obj,{obj});return true;},gemRingDispatchEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\d+), seqno=(\d+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);const seqno=parseInt(event[3]);this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring,seqno});return true;},gemRingFlushEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\w+), invalidate=(\w+), flush=(\w+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);const invalidate=event[3];const flush=event[4];this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring,invalidate,flush});return true;},gemRequestEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\d+), seqno=(\d+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);const seqno=parseInt(event[3]);this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring,seqno});return true;},gemRingWaitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\d+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring});return true;},regRWEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/(\w+) reg=(\w+), len=(\d+), val=(\(\w+, \w+\))/.exec(eventBase.details);if(!event)return false;const rw=event[1];const reg=event[2];const len=event[3];const data=event[3];this.i915RegSlice(ts,rw,reg,{rw,reg,len,data});return true;},flipEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/plane=(\d+), obj=(\w+)/.exec(eventBase.details);if(!event)return false;const plane=parseInt(event[1]);const obj=event[2];if(eventName==='i915_flip_request'){this.i915FlipOpenSlice(ts,obj,plane);}else{this.i915FlipCloseSlice(ts,{obj,plane});} -return true;},gpuFrequency(eventName,cpuNumver,pid,ts,eventBase){const event=/new_freq=(\d+)/.exec(eventBase.details);if(!event)return false;const freq=parseInt(event[1]);this.i915FreqChangeSlice(ts,eventName,{freq});return true;}};Parser.register(I915Parser);return{I915Parser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function IonHeapParser(importer){Parser.call(this,importer);importer.registerEventHandler('ion_heap_shrink',IonHeapParser.prototype.traceIonHeapShrink.bind(this));importer.registerEventHandler('ion_heap_grow',IonHeapParser.prototype.traceIonHeapGrow.bind(this));this.model_=importer.model_;} -const TestExports={};const ionHeapRE=new RegExp('heap_name=(\\S+), len=(\\d+), total_allocated=(\\d+)');TestExports.ionHeapRE=ionHeapRE;IonHeapParser.prototype={__proto__:Parser.prototype,traceIonHeapShrink(eventName,cpuNumber,pid,ts,eventBase,threadName){const event=ionHeapRE.exec(eventBase.details);if(!event)return false;const name=event[1];const len=parseInt(event[2]);const totalAllocated=parseInt(event[3]);const ionHeap=totalAllocated+len;const ctr=this.model_.kernel.getOrCreateCounter(null,name+' ion heap');if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries('value',ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));} -ctr.series.forEach(function(series){series.addCounterSample(ts,ionHeap);});return true;},traceIonHeapGrow(eventName,cpuNumber,pid,ts,eventBase,threadName){const event=ionHeapRE.exec(eventBase.details);if(!event)return false;const name=event[1];const len=parseInt(event[2]);const totalAllocated=parseInt(event[3]);const ionHeap=totalAllocated+len;const ctr=this.model_.kernel.getOrCreateCounter(null,name+' ion heap');if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries('value',ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));} -ctr.series.forEach(function(series){series.addCounterSample(ts,ionHeap);});return true;}};Parser.register(IonHeapParser);return{IonHeapParser,_IonHeapParserTestExports:TestExports};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function IrqParser(importer){Parser.call(this,importer);importer.registerEventHandler('irq_handler_entry',IrqParser.prototype.irqHandlerEntryEvent.bind(this));importer.registerEventHandler('irq_handler_exit',IrqParser.prototype.irqHandlerExitEvent.bind(this));importer.registerEventHandler('softirq_raise',IrqParser.prototype.softirqRaiseEvent.bind(this));importer.registerEventHandler('softirq_entry',IrqParser.prototype.softirqEntryEvent.bind(this));importer.registerEventHandler('softirq_exit',IrqParser.prototype.softirqExitEvent.bind(this));importer.registerEventHandler('ipi_entry',IrqParser.prototype.ipiEntryEvent.bind(this));importer.registerEventHandler('ipi_exit',IrqParser.prototype.ipiExitEvent.bind(this));importer.registerEventHandler('preempt_disable',IrqParser.prototype.preemptStartEvent.bind(this));importer.registerEventHandler('preempt_enable',IrqParser.prototype.preemptEndEvent.bind(this));importer.registerEventHandler('irq_disable',IrqParser.prototype.irqoffStartEvent.bind(this));importer.registerEventHandler('irq_enable',IrqParser.prototype.irqoffEndEvent.bind(this));} +return true;},gpuFrequency(eventName,cpuNumver,pid,ts,eventBase){const event=/new_freq=(\d+)/.exec(eventBase.details);if(!event)return false;const freq=parseInt(event[1]);this.i915FreqChangeSlice(ts,eventName,{freq});return true;}};Parser.register(I915Parser);return{I915Parser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function IrqParser(importer){Parser.call(this,importer);importer.registerEventHandler('irq_handler_entry',IrqParser.prototype.irqHandlerEntryEvent.bind(this));importer.registerEventHandler('irq_handler_exit',IrqParser.prototype.irqHandlerExitEvent.bind(this));importer.registerEventHandler('softirq_raise',IrqParser.prototype.softirqRaiseEvent.bind(this));importer.registerEventHandler('softirq_entry',IrqParser.prototype.softirqEntryEvent.bind(this));importer.registerEventHandler('softirq_exit',IrqParser.prototype.softirqExitEvent.bind(this));importer.registerEventHandler('ipi_entry',IrqParser.prototype.ipiEntryEvent.bind(this));importer.registerEventHandler('ipi_exit',IrqParser.prototype.ipiExitEvent.bind(this));importer.registerEventHandler('preempt_disable',IrqParser.prototype.preemptStartEvent.bind(this));importer.registerEventHandler('preempt_enable',IrqParser.prototype.preemptEndEvent.bind(this));importer.registerEventHandler('irq_disable',IrqParser.prototype.irqoffStartEvent.bind(this));importer.registerEventHandler('irq_enable',IrqParser.prototype.irqoffEndEvent.bind(this));} const irqHandlerEntryRE=/irq=(\d+) name=(.+)/;const irqHandlerExitRE=/irq=(\d+) ret=(.+)/;const softirqRE=/vec=(\d+) \[action=(.+)\]/;const ipiHandlerExitRE=/\((.+)\)/;const preemptirqRE=/caller=(.+) parent=(.+)/;IrqParser.prototype={__proto__:Parser.prototype,irqHandlerEntryEvent(eventName,cpuNumber,pid,ts,eventBase){const event=irqHandlerEntryRE.exec(eventBase.details);if(!event)return false;const irq=parseInt(event[1]);const name=event[2];const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);thread.lastEntryTs=ts;thread.irqName=name;return true;},irqHandlerExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=irqHandlerExitRE.exec(eventBase.details);if(!event)return false;const irq=parseInt(event[1]);const ret=event[2];const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);if(thread.lastEntryTs!==undefined){const duration=ts-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('','IRQ ('+thread.irqName+')',ColorScheme.getColorIdForGeneralPurposeString(event[1]),thread.lastEntryTs,{ret},duration);thread.thread.sliceGroup.pushSlice(slice);} thread.lastEntryTs=undefined;thread.irqName=undefined;return true;},softirqRaiseEvent(eventName,cpuNumber,pid,ts,eventBase){return true;},softirqEntryEvent(eventName,cpuNumber,pid,ts,eventBase){const event=softirqRE.exec(eventBase.details);if(!event)return false;const action=event[2];const thread=this.importer.getOrCreatePseudoThread('softirq cpu '+cpuNumber);thread.lastEntryTs=ts;return true;},softirqExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=softirqRE.exec(eventBase.details);if(!event)return false;const vec=parseInt(event[1]);const action=event[2];const thread=this.importer.getOrCreatePseudoThread('softirq cpu '+cpuNumber);if(thread.lastEntryTs!==undefined){const duration=ts-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('',action,ColorScheme.getColorIdForGeneralPurposeString(event[1]),thread.lastEntryTs,{vec},duration);thread.thread.sliceGroup.pushSlice(slice);} thread.lastEntryTs=undefined;return true;},ipiEntryEvent(eventName,cpuNumber,pid,ts,eventBase){const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);thread.lastEntryTs=ts;return true;},ipiExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=ipiHandlerExitRE.exec(eventBase.details);if(!event)return false;const ipiName=event[1];const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);if(thread.lastEntryTs!==undefined){const duration=ts-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('','IPI ('+ipiName+')',ColorScheme.getColorIdForGeneralPurposeString(ipiName),thread.lastEntryTs,{},duration);thread.thread.sliceGroup.pushSlice(slice);} @@ -6219,17 +5892,12 @@ const tgid=parseInt(eventBase.tgid);const thread=this.model_.getOrCreateProcess(tgid).getOrCreateThread(pid);thread.name=eventBase.threadName;const slices=thread.kernelSliceGroup;if(!slices.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'parse_error',message:'Timestamps are moving backward.'});return false;} if(slices.openSliceCount>0){slices.endSlice(ts);} return true;}};LinuxPerfParser.register(KernelFuncParser);return{KernelFuncParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function MaliParser(importer){Parser.call(this,importer);importer.registerEventHandler('mali_dvfs_event',MaliParser.prototype.dvfsEventEvent.bind(this));importer.registerEventHandler('mali_dvfs_set_clock',MaliParser.prototype.dvfsSetClockEvent.bind(this));importer.registerEventHandler('mali_dvfs_set_voltage',MaliParser.prototype.dvfsSetVoltageEvent.bind(this));this.addJMCounter('mali_hwc_MESSAGES_SENT','Messages Sent');this.addJMCounter('mali_hwc_MESSAGES_RECEIVED','Messages Received');this.addJMCycles('mali_hwc_GPU_ACTIVE','GPU Active');this.addJMCycles('mali_hwc_IRQ_ACTIVE','IRQ Active');for(let i=0;i<7;i++){const jobStr='JS'+i;const jobHWCStr='mali_hwc_'+jobStr;this.addJMCounter(jobHWCStr+'_JOBS',jobStr+' Jobs');this.addJMCounter(jobHWCStr+'_TASKS',jobStr+' Tasks');this.addJMCycles(jobHWCStr+'_ACTIVE',jobStr+' Active');this.addJMCycles(jobHWCStr+'_WAIT_READ',jobStr+' Wait Read');this.addJMCycles(jobHWCStr+'_WAIT_ISSUE',jobStr+' Wait Issue');this.addJMCycles(jobHWCStr+'_WAIT_DEPEND',jobStr+' Wait Depend');this.addJMCycles(jobHWCStr+'_WAIT_FINISH',jobStr+' Wait Finish');} -this.addTilerCounter('mali_hwc_TRIANGLES','Triangles');this.addTilerCounter('mali_hwc_QUADS','Quads');this.addTilerCounter('mali_hwc_POLYGONS','Polygons');this.addTilerCounter('mali_hwc_POINTS','Points');this.addTilerCounter('mali_hwc_LINES','Lines');this.addTilerCounter('mali_hwc_VCACHE_HIT','VCache Hit');this.addTilerCounter('mali_hwc_VCACHE_MISS','VCache Miss');this.addTilerCounter('mali_hwc_FRONT_FACING','Front Facing');this.addTilerCounter('mali_hwc_BACK_FACING','Back Facing');this.addTilerCounter('mali_hwc_PRIM_VISIBLE','Prim Visible');this.addTilerCounter('mali_hwc_PRIM_CULLED','Prim Culled');this.addTilerCounter('mali_hwc_PRIM_CLIPPED','Prim Clipped');this.addTilerCounter('mali_hwc_WRBUF_HIT','Wrbuf Hit');this.addTilerCounter('mali_hwc_WRBUF_MISS','Wrbuf Miss');this.addTilerCounter('mali_hwc_WRBUF_LINE','Wrbuf Line');this.addTilerCounter('mali_hwc_WRBUF_PARTIAL','Wrbuf Partial');this.addTilerCounter('mali_hwc_WRBUF_STALL','Wrbuf Stall');this.addTilerCycles('mali_hwc_ACTIVE','Tiler Active');this.addTilerCycles('mali_hwc_INDEX_WAIT','Index Wait');this.addTilerCycles('mali_hwc_INDEX_RANGE_WAIT','Index Range Wait');this.addTilerCycles('mali_hwc_VERTEX_WAIT','Vertex Wait');this.addTilerCycles('mali_hwc_PCACHE_WAIT','Pcache Wait');this.addTilerCycles('mali_hwc_WRBUF_WAIT','Wrbuf Wait');this.addTilerCycles('mali_hwc_BUS_READ','Bus Read');this.addTilerCycles('mali_hwc_BUS_WRITE','Bus Write');this.addTilerCycles('mali_hwc_TILER_UTLB_STALL','Tiler UTLB Stall');this.addTilerCycles('mali_hwc_TILER_UTLB_HIT','Tiler UTLB Hit');this.addFragCycles('mali_hwc_FRAG_ACTIVE','Active');this.addFragCounter('mali_hwc_FRAG_PRIMATIVES','Primitives');this.addFragCounter('mali_hwc_FRAG_PRIMATIVES_DROPPED','Primitives Dropped');this.addFragCycles('mali_hwc_FRAG_CYCLE_DESC','Descriptor Processing');this.addFragCycles('mali_hwc_FRAG_CYCLES_PLR','PLR Processing??');this.addFragCycles('mali_hwc_FRAG_CYCLES_VERT','Vertex Processing');this.addFragCycles('mali_hwc_FRAG_CYCLES_TRISETUP','Triangle Setup');this.addFragCycles('mali_hwc_FRAG_CYCLES_RAST','Rasterization???');this.addFragCounter('mali_hwc_FRAG_THREADS','Threads');this.addFragCounter('mali_hwc_FRAG_DUMMY_THREADS','Dummy Threads');this.addFragCounter('mali_hwc_FRAG_QUADS_RAST','Quads Rast');this.addFragCounter('mali_hwc_FRAG_QUADS_EZS_TEST','Quads EZS Test');this.addFragCounter('mali_hwc_FRAG_QUADS_EZS_KILLED','Quads EZS Killed');this.addFragCounter('mali_hwc_FRAG_QUADS_LZS_TEST','Quads LZS Test');this.addFragCounter('mali_hwc_FRAG_QUADS_LZS_KILLED','Quads LZS Killed');this.addFragCycles('mali_hwc_FRAG_CYCLE_NO_TILE','No Tiles');this.addFragCounter('mali_hwc_FRAG_NUM_TILES','Tiles');this.addFragCounter('mali_hwc_FRAG_TRANS_ELIM','Transactions Eliminated');this.addComputeCycles('mali_hwc_COMPUTE_ACTIVE','Active');this.addComputeCounter('mali_hwc_COMPUTE_TASKS','Tasks');this.addComputeCounter('mali_hwc_COMPUTE_THREADS','Threads Started');this.addComputeCycles('mali_hwc_COMPUTE_CYCLES_DESC','Waiting for Descriptors');this.addTripipeCycles('mali_hwc_TRIPIPE_ACTIVE','Active');this.addArithCounter('mali_hwc_ARITH_WORDS','Instructions (/Pipes)');this.addArithCycles('mali_hwc_ARITH_CYCLES_REG','Reg scheduling stalls (/Pipes)');this.addArithCycles('mali_hwc_ARITH_CYCLES_L0','L0 cache miss stalls (/Pipes)');this.addArithCounter('mali_hwc_ARITH_FRAG_DEPEND','Frag dep check failures (/Pipes)');this.addLSCounter('mali_hwc_LS_WORDS','Instruction Words Completed');this.addLSCounter('mali_hwc_LS_ISSUES','Full Pipeline Issues');this.addLSCounter('mali_hwc_LS_RESTARTS','Restarts (unpairable insts)');this.addLSCounter('mali_hwc_LS_REISSUES_MISS','Pipeline reissue (cache miss/uTLB)');this.addLSCounter('mali_hwc_LS_REISSUES_VD','Pipeline reissue (varying data)');this.addLSCounter('mali_hwc_LS_REISSUE_ATTRIB_MISS','Pipeline reissue (attribute cache miss)');this.addLSCounter('mali_hwc_LS_REISSUE_NO_WB','Writeback not used');this.addTexCounter('mali_hwc_TEX_WORDS','Words');this.addTexCounter('mali_hwc_TEX_BUBBLES','Bubbles');this.addTexCounter('mali_hwc_TEX_WORDS_L0','Words L0');this.addTexCounter('mali_hwc_TEX_WORDS_DESC','Words Desc');this.addTexCounter('mali_hwc_TEX_THREADS','Threads');this.addTexCounter('mali_hwc_TEX_RECIRC_FMISS','Recirc due to Full Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_DESC','Recirc due to Desc Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_MULTI','Recirc due to Multipass');this.addTexCounter('mali_hwc_TEX_RECIRC_PMISS','Recirc due to Partial Cache Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_CONF','Recirc due to Cache Conflict');this.addLSCCounter('mali_hwc_LSC_READ_HITS','Read Hits');this.addLSCCounter('mali_hwc_LSC_READ_MISSES','Read Misses');this.addLSCCounter('mali_hwc_LSC_WRITE_HITS','Write Hits');this.addLSCCounter('mali_hwc_LSC_WRITE_MISSES','Write Misses');this.addLSCCounter('mali_hwc_LSC_ATOMIC_HITS','Atomic Hits');this.addLSCCounter('mali_hwc_LSC_ATOMIC_MISSES','Atomic Misses');this.addLSCCounter('mali_hwc_LSC_LINE_FETCHES','Line Fetches');this.addLSCCounter('mali_hwc_LSC_DIRTY_LINE','Dirty Lines');this.addLSCCounter('mali_hwc_LSC_SNOOPS','Snoops');this.addAXICounter('mali_hwc_AXI_TLB_STALL','Address channel stall');this.addAXICounter('mali_hwc_AXI_TLB_MISS','Cache Miss');this.addAXICounter('mali_hwc_AXI_TLB_TRANSACTION','Transactions');this.addAXICounter('mali_hwc_LS_TLB_MISS','LS Cache Miss');this.addAXICounter('mali_hwc_LS_TLB_HIT','LS Cache Hit');this.addAXICounter('mali_hwc_AXI_BEATS_READ','Read Beats');this.addAXICounter('mali_hwc_AXI_BEATS_WRITE','Write Beats');this.addMMUCounter('mali_hwc_MMU_TABLE_WALK','Page Table Walks');this.addMMUCounter('mali_hwc_MMU_REPLAY_MISS','Cache Miss from Replay Buffer');this.addMMUCounter('mali_hwc_MMU_REPLAY_FULL','Replay Buffer Full');this.addMMUCounter('mali_hwc_MMU_NEW_MISS','Cache Miss on New Request');this.addMMUCounter('mali_hwc_MMU_HIT','Cache Hit');this.addMMUCycles('mali_hwc_UTLB_STALL','UTLB Stalled');this.addMMUCycles('mali_hwc_UTLB_REPLAY_MISS','UTLB Replay Miss');this.addMMUCycles('mali_hwc_UTLB_REPLAY_FULL','UTLB Replay Full');this.addMMUCycles('mali_hwc_UTLB_NEW_MISS','UTLB New Miss');this.addMMUCycles('mali_hwc_UTLB_HIT','UTLB Hit');this.addL2Counter('mali_hwc_L2_READ_BEATS','Read Beats');this.addL2Counter('mali_hwc_L2_WRITE_BEATS','Write Beats');this.addL2Counter('mali_hwc_L2_ANY_LOOKUP','Any Lookup');this.addL2Counter('mali_hwc_L2_READ_LOOKUP','Read Lookup');this.addL2Counter('mali_hwc_L2_SREAD_LOOKUP','Shareable Read Lookup');this.addL2Counter('mali_hwc_L2_READ_REPLAY','Read Replayed');this.addL2Counter('mali_hwc_L2_READ_SNOOP','Read Snoop');this.addL2Counter('mali_hwc_L2_READ_HIT','Read Cache Hit');this.addL2Counter('mali_hwc_L2_CLEAN_MISS','CleanUnique Miss');this.addL2Counter('mali_hwc_L2_WRITE_LOOKUP','Write Lookup');this.addL2Counter('mali_hwc_L2_SWRITE_LOOKUP','Shareable Write Lookup');this.addL2Counter('mali_hwc_L2_WRITE_REPLAY','Write Replayed');this.addL2Counter('mali_hwc_L2_WRITE_SNOOP','Write Snoop');this.addL2Counter('mali_hwc_L2_WRITE_HIT','Write Cache Hit');this.addL2Counter('mali_hwc_L2_EXT_READ_FULL','ExtRD with BIU Full');this.addL2Counter('mali_hwc_L2_EXT_READ_HALF','ExtRD with BIU >1/2 Full');this.addL2Counter('mali_hwc_L2_EXT_WRITE_FULL','ExtWR with BIU Full');this.addL2Counter('mali_hwc_L2_EXT_WRITE_HALF','ExtWR with BIU >1/2 Full');this.addL2Counter('mali_hwc_L2_EXT_READ','External Read (ExtRD)');this.addL2Counter('mali_hwc_L2_EXT_READ_LINE','ExtRD (linefill)');this.addL2Counter('mali_hwc_L2_EXT_WRITE','External Write (ExtWR)');this.addL2Counter('mali_hwc_L2_EXT_WRITE_LINE','ExtWR (linefill)');this.addL2Counter('mali_hwc_L2_EXT_WRITE_SMALL','ExtWR (burst size <64B)');this.addL2Counter('mali_hwc_L2_EXT_BARRIER','External Barrier');this.addL2Counter('mali_hwc_L2_EXT_AR_STALL','Address Read stalls');this.addL2Counter('mali_hwc_L2_EXT_R_BUF_FULL','Response Buffer full stalls');this.addL2Counter('mali_hwc_L2_EXT_RD_BUF_FULL','Read Data Buffer full stalls');this.addL2Counter('mali_hwc_L2_EXT_R_RAW','RAW hazard stalls');this.addL2Counter('mali_hwc_L2_EXT_W_STALL','Write Data stalls');this.addL2Counter('mali_hwc_L2_EXT_W_BUF_FULL','Write Data Buffer full');this.addL2Counter('mali_hwc_L2_EXT_R_W_HAZARD','WAW or WAR hazard stalls');this.addL2Counter('mali_hwc_L2_TAG_HAZARD','Tag hazard replays');this.addL2Cycles('mali_hwc_L2_SNOOP_FULL','Snoop buffer full');this.addL2Cycles('mali_hwc_L2_REPLAY_FULL','Replay buffer full');importer.registerEventHandler('tracing_mark_write:mali_driver',MaliParser.prototype.maliDDKEvent.bind(this));importer.registerEventHandler('mali_job_systrace_event_start',MaliParser.prototype.maliJobEvent.bind(this));importer.registerEventHandler('mali_job_systrace_event_stop',MaliParser.prototype.maliJobEvent.bind(this));this.model_=importer.model_;this.deferredJobs_={};} +this.addTilerCounter('mali_hwc_TRIANGLES','Triangles');this.addTilerCounter('mali_hwc_QUADS','Quads');this.addTilerCounter('mali_hwc_POLYGONS','Polygons');this.addTilerCounter('mali_hwc_POINTS','Points');this.addTilerCounter('mali_hwc_LINES','Lines');this.addTilerCounter('mali_hwc_VCACHE_HIT','VCache Hit');this.addTilerCounter('mali_hwc_VCACHE_MISS','VCache Miss');this.addTilerCounter('mali_hwc_FRONT_FACING','Front Facing');this.addTilerCounter('mali_hwc_BACK_FACING','Back Facing');this.addTilerCounter('mali_hwc_PRIM_VISIBLE','Prim Visible');this.addTilerCounter('mali_hwc_PRIM_CULLED','Prim Culled');this.addTilerCounter('mali_hwc_PRIM_CLIPPED','Prim Clipped');this.addTilerCounter('mali_hwc_WRBUF_HIT','Wrbuf Hit');this.addTilerCounter('mali_hwc_WRBUF_MISS','Wrbuf Miss');this.addTilerCounter('mali_hwc_WRBUF_LINE','Wrbuf Line');this.addTilerCounter('mali_hwc_WRBUF_PARTIAL','Wrbuf Partial');this.addTilerCounter('mali_hwc_WRBUF_STALL','Wrbuf Stall');this.addTilerCycles('mali_hwc_ACTIVE','Tiler Active');this.addTilerCycles('mali_hwc_INDEX_WAIT','Index Wait');this.addTilerCycles('mali_hwc_INDEX_RANGE_WAIT','Index Range Wait');this.addTilerCycles('mali_hwc_VERTEX_WAIT','Vertex Wait');this.addTilerCycles('mali_hwc_PCACHE_WAIT','Pcache Wait');this.addTilerCycles('mali_hwc_WRBUF_WAIT','Wrbuf Wait');this.addTilerCycles('mali_hwc_BUS_READ','Bus Read');this.addTilerCycles('mali_hwc_BUS_WRITE','Bus Write');this.addTilerCycles('mali_hwc_TILER_UTLB_STALL','Tiler UTLB Stall');this.addTilerCycles('mali_hwc_TILER_UTLB_HIT','Tiler UTLB Hit');this.addFragCycles('mali_hwc_FRAG_ACTIVE','Active');this.addFragCounter('mali_hwc_FRAG_PRIMATIVES','Primitives');this.addFragCounter('mali_hwc_FRAG_PRIMATIVES_DROPPED','Primitives Dropped');this.addFragCycles('mali_hwc_FRAG_CYCLE_DESC','Descriptor Processing');this.addFragCycles('mali_hwc_FRAG_CYCLES_PLR','PLR Processing??');this.addFragCycles('mali_hwc_FRAG_CYCLES_VERT','Vertex Processing');this.addFragCycles('mali_hwc_FRAG_CYCLES_TRISETUP','Triangle Setup');this.addFragCycles('mali_hwc_FRAG_CYCLES_RAST','Rasterization???');this.addFragCounter('mali_hwc_FRAG_THREADS','Threads');this.addFragCounter('mali_hwc_FRAG_DUMMY_THREADS','Dummy Threads');this.addFragCounter('mali_hwc_FRAG_QUADS_RAST','Quads Rast');this.addFragCounter('mali_hwc_FRAG_QUADS_EZS_TEST','Quads EZS Test');this.addFragCounter('mali_hwc_FRAG_QUADS_EZS_KILLED','Quads EZS Killed');this.addFragCounter('mali_hwc_FRAG_QUADS_LZS_TEST','Quads LZS Test');this.addFragCounter('mali_hwc_FRAG_QUADS_LZS_KILLED','Quads LZS Killed');this.addFragCycles('mali_hwc_FRAG_CYCLE_NO_TILE','No Tiles');this.addFragCounter('mali_hwc_FRAG_NUM_TILES','Tiles');this.addFragCounter('mali_hwc_FRAG_TRANS_ELIM','Transactions Eliminated');this.addComputeCycles('mali_hwc_COMPUTE_ACTIVE','Active');this.addComputeCounter('mali_hwc_COMPUTE_TASKS','Tasks');this.addComputeCounter('mali_hwc_COMPUTE_THREADS','Threads Started');this.addComputeCycles('mali_hwc_COMPUTE_CYCLES_DESC','Waiting for Descriptors');this.addTripipeCycles('mali_hwc_TRIPIPE_ACTIVE','Active');this.addArithCounter('mali_hwc_ARITH_WORDS','Instructions (/Pipes)');this.addArithCycles('mali_hwc_ARITH_CYCLES_REG','Reg scheduling stalls (/Pipes)');this.addArithCycles('mali_hwc_ARITH_CYCLES_L0','L0 cache miss stalls (/Pipes)');this.addArithCounter('mali_hwc_ARITH_FRAG_DEPEND','Frag dep check failures (/Pipes)');this.addLSCounter('mali_hwc_LS_WORDS','Instruction Words Completed');this.addLSCounter('mali_hwc_LS_ISSUES','Full Pipeline Issues');this.addLSCounter('mali_hwc_LS_RESTARTS','Restarts (unpairable insts)');this.addLSCounter('mali_hwc_LS_REISSUES_MISS','Pipeline reissue (cache miss/uTLB)');this.addLSCounter('mali_hwc_LS_REISSUES_VD','Pipeline reissue (varying data)');this.addLSCounter('mali_hwc_LS_REISSUE_ATTRIB_MISS','Pipeline reissue (attribute cache miss)');this.addLSCounter('mali_hwc_LS_REISSUE_NO_WB','Writeback not used');this.addTexCounter('mali_hwc_TEX_WORDS','Words');this.addTexCounter('mali_hwc_TEX_BUBBLES','Bubbles');this.addTexCounter('mali_hwc_TEX_WORDS_L0','Words L0');this.addTexCounter('mali_hwc_TEX_WORDS_DESC','Words Desc');this.addTexCounter('mali_hwc_TEX_THREADS','Threads');this.addTexCounter('mali_hwc_TEX_RECIRC_FMISS','Recirc due to Full Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_DESC','Recirc due to Desc Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_MULTI','Recirc due to Multipass');this.addTexCounter('mali_hwc_TEX_RECIRC_PMISS','Recirc due to Partial Cache Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_CONF','Recirc due to Cache Conflict');this.addLSCCounter('mali_hwc_LSC_READ_HITS','Read Hits');this.addLSCCounter('mali_hwc_LSC_READ_MISSES','Read Misses');this.addLSCCounter('mali_hwc_LSC_WRITE_HITS','Write Hits');this.addLSCCounter('mali_hwc_LSC_WRITE_MISSES','Write Misses');this.addLSCCounter('mali_hwc_LSC_ATOMIC_HITS','Atomic Hits');this.addLSCCounter('mali_hwc_LSC_ATOMIC_MISSES','Atomic Misses');this.addLSCCounter('mali_hwc_LSC_LINE_FETCHES','Line Fetches');this.addLSCCounter('mali_hwc_LSC_DIRTY_LINE','Dirty Lines');this.addLSCCounter('mali_hwc_LSC_SNOOPS','Snoops');this.addAXICounter('mali_hwc_AXI_TLB_STALL','Address channel stall');this.addAXICounter('mali_hwc_AXI_TLB_MISS','Cache Miss');this.addAXICounter('mali_hwc_AXI_TLB_TRANSACTION','Transactions');this.addAXICounter('mali_hwc_LS_TLB_MISS','LS Cache Miss');this.addAXICounter('mali_hwc_LS_TLB_HIT','LS Cache Hit');this.addAXICounter('mali_hwc_AXI_BEATS_READ','Read Beats');this.addAXICounter('mali_hwc_AXI_BEATS_WRITE','Write Beats');this.addMMUCounter('mali_hwc_MMU_TABLE_WALK','Page Table Walks');this.addMMUCounter('mali_hwc_MMU_REPLAY_MISS','Cache Miss from Replay Buffer');this.addMMUCounter('mali_hwc_MMU_REPLAY_FULL','Replay Buffer Full');this.addMMUCounter('mali_hwc_MMU_NEW_MISS','Cache Miss on New Request');this.addMMUCounter('mali_hwc_MMU_HIT','Cache Hit');this.addMMUCycles('mali_hwc_UTLB_STALL','UTLB Stalled');this.addMMUCycles('mali_hwc_UTLB_REPLAY_MISS','UTLB Replay Miss');this.addMMUCycles('mali_hwc_UTLB_REPLAY_FULL','UTLB Replay Full');this.addMMUCycles('mali_hwc_UTLB_NEW_MISS','UTLB New Miss');this.addMMUCycles('mali_hwc_UTLB_HIT','UTLB Hit');this.addL2Counter('mali_hwc_L2_READ_BEATS','Read Beats');this.addL2Counter('mali_hwc_L2_WRITE_BEATS','Write Beats');this.addL2Counter('mali_hwc_L2_ANY_LOOKUP','Any Lookup');this.addL2Counter('mali_hwc_L2_READ_LOOKUP','Read Lookup');this.addL2Counter('mali_hwc_L2_SREAD_LOOKUP','Shareable Read Lookup');this.addL2Counter('mali_hwc_L2_READ_REPLAY','Read Replayed');this.addL2Counter('mali_hwc_L2_READ_SNOOP','Read Snoop');this.addL2Counter('mali_hwc_L2_READ_HIT','Read Cache Hit');this.addL2Counter('mali_hwc_L2_CLEAN_MISS','CleanUnique Miss');this.addL2Counter('mali_hwc_L2_WRITE_LOOKUP','Write Lookup');this.addL2Counter('mali_hwc_L2_SWRITE_LOOKUP','Shareable Write Lookup');this.addL2Counter('mali_hwc_L2_WRITE_REPLAY','Write Replayed');this.addL2Counter('mali_hwc_L2_WRITE_SNOOP','Write Snoop');this.addL2Counter('mali_hwc_L2_WRITE_HIT','Write Cache Hit');this.addL2Counter('mali_hwc_L2_EXT_READ_FULL','ExtRD with BIU Full');this.addL2Counter('mali_hwc_L2_EXT_READ_HALF','ExtRD with BIU >1/2 Full');this.addL2Counter('mali_hwc_L2_EXT_WRITE_FULL','ExtWR with BIU Full');this.addL2Counter('mali_hwc_L2_EXT_WRITE_HALF','ExtWR with BIU >1/2 Full');this.addL2Counter('mali_hwc_L2_EXT_READ','External Read (ExtRD)');this.addL2Counter('mali_hwc_L2_EXT_READ_LINE','ExtRD (linefill)');this.addL2Counter('mali_hwc_L2_EXT_WRITE','External Write (ExtWR)');this.addL2Counter('mali_hwc_L2_EXT_WRITE_LINE','ExtWR (linefill)');this.addL2Counter('mali_hwc_L2_EXT_WRITE_SMALL','ExtWR (burst size <64B)');this.addL2Counter('mali_hwc_L2_EXT_BARRIER','External Barrier');this.addL2Counter('mali_hwc_L2_EXT_AR_STALL','Address Read stalls');this.addL2Counter('mali_hwc_L2_EXT_R_BUF_FULL','Response Buffer full stalls');this.addL2Counter('mali_hwc_L2_EXT_RD_BUF_FULL','Read Data Buffer full stalls');this.addL2Counter('mali_hwc_L2_EXT_R_RAW','RAW hazard stalls');this.addL2Counter('mali_hwc_L2_EXT_W_STALL','Write Data stalls');this.addL2Counter('mali_hwc_L2_EXT_W_BUF_FULL','Write Data Buffer full');this.addL2Counter('mali_hwc_L2_EXT_R_W_HAZARD','WAW or WAR hazard stalls');this.addL2Counter('mali_hwc_L2_TAG_HAZARD','Tag hazard replays');this.addL2Cycles('mali_hwc_L2_SNOOP_FULL','Snoop buffer full');this.addL2Cycles('mali_hwc_L2_REPLAY_FULL','Replay buffer full');importer.registerEventHandler('tracing_mark_write:mali_driver',MaliParser.prototype.maliDDKEvent.bind(this));this.model_=importer.model_;} MaliParser.prototype={__proto__:Parser.prototype,maliDDKOpenSlice(pid,tid,ts,func,blockinfo){const thread=this.importer.model_.getOrCreateProcess(pid).getOrCreateThread(tid);const funcArgs=/^([\w\d_]*)(?:\(\))?:?\s*(.*)$/.exec(func);thread.sliceGroup.beginSlice('gpu-driver',funcArgs[1],ts,{'args':funcArgs[2],blockinfo});},maliDDKCloseSlice(pid,tid,ts,args,blockinfo){const thread=this.importer.model_.getOrCreateProcess(pid).getOrCreateThread(tid);if(!thread.sliceGroup.openSliceCount){return;} thread.sliceGroup.endSlice(ts);},autoDetectLineRE(line){const lineREWithThread=/^\s*\(([\w\-]*)\)\s*(\w+):\s*([\w\\\/\.\-]*@\d*):?\s*(.*)$/;if(lineREWithThread.test(line)){return lineREWithThread;} const lineRENoThread=/^s*()(\w+):\s*([\w\\\/.\-]*):?\s*(.*)$/;if(lineRENoThread.test(line)){return lineRENoThread;} return null;},lineRE:null,maliDDKEvent(eventName,cpuNumber,pid,ts,eventBase){if(this.lineRE===null){this.lineRE=this.autoDetectLineRE(eventBase.details);if(this.lineRE===null)return false;} const maliEvent=this.lineRE.exec(eventBase.details);const tid=(maliEvent[1]===''?'mali':maliEvent[1]);switch(maliEvent[2]){case'cros_trace_print_enter':this.maliDDKOpenSlice(pid,tid,ts,maliEvent[4],maliEvent[3]);break;case'cros_trace_print_exit':this.maliDDKCloseSlice(pid,tid,ts,[],maliEvent[3]);} -return true;},maliJobEvent(eventName,cpuNumber,pid,ts,eventBase){const jobEventRE=/^.*tracing_mark_write: (S|F)\|(\d+)\|(\w+)-job\|(\d+)\|(\d+)\|(\d+)\|(\d+)\|(\d+)\|([a-z0-9]+)\|(\d+)$/;const jobEvent=jobEventRE.exec(eventBase.details);if(!jobEvent){this.model_.importWarning({type:'parse_error',args:'unexpected mali_job_systrace_event_* event syntax'});return;} -const jobType=jobEvent[3];const jobId=jobEvent[4];const thread=this.importer.model_.getOrCreateProcess(0).getOrCreateThread('mali:'+jobType);switch(jobEvent[1]){case'S':{const args={ctx:jobEvent[9],pid:parseInt(jobEvent[2],10),dep0:parseInt(jobEvent[5],10),dep1:parseInt(jobEvent[7],10)};if(thread.sliceGroup.openSliceCount){if(!(jobType in this.deferredJobs_)){this.deferredJobs_[jobType]=[];} -this.deferredJobs_[jobType].push({id:jobId,args});}else{thread.sliceGroup.beginSlice(null,jobId,ts,args);}}break;case'F':{if(!thread.sliceGroup.openSliceCount){return;} -if(thread.sliceGroup.mostRecentlyOpenedPartialSlice.title!==jobId){this.model_.importWarning({type:'invalid event nesting',message:'non-sequential jobs in same mali job slot'});} -thread.sliceGroup.endSlice(ts);const deferredJobs=this.deferredJobs_[jobType];if(deferredJobs&&deferredJobs.length){const job=deferredJobs.shift();thread.sliceGroup.beginSlice(null,job.id,ts,job.args);}}break;} return true;},dvfsSample(counterName,seriesName,ts,s){const value=parseInt(s);const counter=this.model_.kernel.getOrCreateCounter('DVFS',counterName);if(counter.numSeries===0){counter.addSeries(new tr.model.CounterSeries(seriesName,ColorScheme.getColorIdForGeneralPurposeString(counter.name)));} counter.series.forEach(function(series){series.addCounterSample(ts,value);});},dvfsEventEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/utilization=(\d+)/.exec(eventBase.details);if(!event)return false;this.dvfsSample('DVFS Utilization','utilization',ts,event[1]);return true;},dvfsSetClockEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/frequency=(\d+)/.exec(eventBase.details);if(!event)return false;this.dvfsSample('DVFS Frequency','frequency',ts,event[1]);return true;},dvfsSetVoltageEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/voltage=(\d+)/.exec(eventBase.details);if(!event)return false;this.dvfsSample('DVFS Voltage','voltage',ts,event[1]);return true;},hwcSample(cat,counterName,seriesName,ts,eventBase){const event=/val=(\d+)/.exec(eventBase.details);if(!event)return false;const value=parseInt(event[1]);const counter=this.model_.kernel.getOrCreateCounter(cat,counterName);if(counter.numSeries===0){counter.addSeries(new tr.model.CounterSeries(seriesName,ColorScheme.getColorIdForGeneralPurposeString(counter.name)));} counter.series.forEach(function(series){series.addCounterSample(ts,value);});return true;},jmSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:jm','JM: '+ctrName,seriesName,ts,eventBase);},addJMCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.jmSample(hwcTitle,'count',ts,eventBase);} @@ -6264,12 +5932,8 @@ powerCounter.series.forEach(function(series){if(series.name==='Min Frequency'){series.addCounterSample(ts,minFreq);} if(series.name==='Max Frequency'){series.addCounterSample(ts,maxFreq);}});},powerStartEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/type=(\d+) state=(\d) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[3]);const cpuState=parseInt(event[2]);this.cpuStateSlice(ts,targetCpuNumber,event[1],cpuState);return true;},powerFrequencyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/type=(\d+) state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[3]);const powerState=parseInt(event[2]);this.cpuFrequencySlice(ts,targetCpuNumber,powerState);return true;},cpuFrequencyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[2]);const powerState=parseInt(event[1]);this.cpuFrequencySlice(ts,targetCpuNumber,powerState);return true;},cpuFrequencyLimitsEvent(eventName,cpu,pid,ts,eventBase){const event=/min=(\d+) max=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[3]);const minFreq=parseInt(event[1]);const maxFreq=parseInt(event[2]);this.cpuFrequencyLimitsSlice(ts,targetCpuNumber,minFreq,maxFreq);return true;},cpuIdleEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[2]);const cpuState=parseInt(event[1]);this.cpuIdleSlice(ts,targetCpuNumber,cpuState);return true;}};Parser.register(PowerParser);return{PowerParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function RegulatorParser(importer){Parser.call(this,importer);importer.registerEventHandler('regulator_enable',RegulatorParser.prototype.regulatorEnableEvent.bind(this));importer.registerEventHandler('regulator_enable_delay',RegulatorParser.prototype.regulatorEnableDelayEvent.bind(this));importer.registerEventHandler('regulator_enable_complete',RegulatorParser.prototype.regulatorEnableCompleteEvent.bind(this));importer.registerEventHandler('regulator_disable',RegulatorParser.prototype.regulatorDisableEvent.bind(this));importer.registerEventHandler('regulator_disable_complete',RegulatorParser.prototype.regulatorDisableCompleteEvent.bind(this));importer.registerEventHandler('regulator_set_voltage',RegulatorParser.prototype.regulatorSetVoltageEvent.bind(this));importer.registerEventHandler('regulator_set_voltage_complete',RegulatorParser.prototype.regulatorSetVoltageCompleteEvent.bind(this));this.model_=importer.model_;} const regulatorEnableRE=/name=(.+)/;const regulatorDisableRE=/name=(.+)/;const regulatorSetVoltageCompleteRE=/name=(\S+), val=(\d+)/;RegulatorParser.prototype={__proto__:Parser.prototype,getCtr_(ctrName,valueName){const ctr=this.model_.kernel.getOrCreateCounter(null,'vreg '+ctrName+' '+valueName);if(ctr.series[0]===undefined){ctr.addSeries(new tr.model.CounterSeries(valueName,ColorScheme.getColorIdForGeneralPurposeString(ctrName+'.'+valueName)));} -return ctr;},regulatorEnableEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorEnableRE.exec(eventBase.details);if(!event)return false;const name=event[1];const ctr=this.getCtr_(name,'enabled');ctr.series[0].addCounterSample(ts,1);return true;},regulatorEnableDelayEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorEnableCompleteEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorDisableEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorDisableRE.exec(eventBase.details);if(!event)return false;const name=event[1];const ctr=this.getCtr_(name,'enabled');ctr.series[0].addCounterSample(ts,0);return true;},regulatorDisableCompleteEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorSetVoltageEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorSetVoltageCompleteEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorSetVoltageCompleteRE.exec(eventBase.details);if(!event)return false;const name=event[1];const voltage=parseInt(event[2]);const ctr=this.getCtr_(name,'voltage');ctr.series[0].addCounterSample(ts,voltage);return true;}};Parser.register(RegulatorParser);return{RegulatorParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const Parser=tr.e.importer.linux_perf.Parser;function RssParser(importer){Parser.call(this,importer);importer.registerEventHandler('rss_stat',RssParser.prototype.rssStat.bind(this));} -const TestExports={};const rssStatRE=new RegExp('member=(\\d+) size=(\\d+)');TestExports.rssStatRE=rssStatRE;const unknownThreadName='<...>';RssParser.prototype={__proto__:Parser.prototype,rssStat(eventName,cpuNumber,pid,ts,eventBase){const event=rssStatRE.exec(eventBase.details);if(!event)return false;const member=parseInt(event[1]);const size=parseInt(event[2]);if(eventBase.tgid===undefined){return false;} -const tgid=parseInt(eventBase.tgid);const process=this.importer.model_.getOrCreateProcess(tgid);let subTitle='';if(member===0){subTitle=' (file pages)';}else if(member===1){subTitle=' (anon)';} -const rssCounter=process.getOrCreateCounter('RSS','RSS '+member+subTitle);if(rssCounter.numSeries===0){rssCounter.addSeries(new tr.model.CounterSeries('RSS',tr.b.ColorScheme.getColorIdForGeneralPurposeString(rssCounter.name)));} -rssCounter.series.forEach(function(series){series.addCounterSample(ts,size);});return true;},};Parser.register(RssParser);return{RssParser,_RssParserTestExports:TestExports};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const Parser=tr.e.importer.linux_perf.Parser;function SchedParser(importer){Parser.call(this,importer);importer.registerEventHandler('sched_switch',SchedParser.prototype.schedSwitchEvent.bind(this));importer.registerEventHandler('sched_wakeup',SchedParser.prototype.schedWakeupEvent.bind(this));importer.registerEventHandler('sched_blocked_reason',SchedParser.prototype.schedBlockedEvent.bind(this));importer.registerEventHandler('sched_cpu_hotplug',SchedParser.prototype.schedCpuHotplugEvent.bind(this));} -const TestExports={};const schedSwitchRE=new RegExp('prev_comm=(.+) prev_pid=(\\d+) prev_prio=(\\d+) '+'prev_state=(\\S\\+?|\\S\\|\\S) ==> '+'next_comm=(.+) next_pid=(\\d+) next_prio=(\\d+)');const schedBlockedRE=new RegExp('pid=(\\d+) iowait=(\\d) caller=(.+)');TestExports.schedSwitchRE=schedSwitchRE;const schedWakeupRE=/comm=(.+) pid=(\d+) prio=(\d+)(?: success=\d+)? target_cpu=(\d+)/;TestExports.schedWakeupRE=schedWakeupRE;const unknownThreadName='<...>';SchedParser.prototype={__proto__:Parser.prototype,schedSwitchEvent(eventName,cpuNumber,pid,ts,eventBase){const event=schedSwitchRE.exec(eventBase.details);if(!event)return false;const prevState=event[4];const nextComm=event[5];const nextPid=parseInt(event[6]);const nextPrio=parseInt(event[7]);if(eventBase.tgid!==undefined){const tgid=parseInt(eventBase.tgid);const process=this.importer.model_.getOrCreateProcess(tgid);const storedThread=process.getThread(pid);if(!storedThread){const thread=process.getOrCreateThread(pid);thread.name=eventBase.threadName;}else if(storedThread.name===unknownThreadName){storedThread.name=eventBase.threadName;}} +return ctr;},regulatorEnableEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorEnableRE.exec(eventBase.details);if(!event)return false;const name=event[1];const ctr=this.getCtr_(name,'enabled');ctr.series[0].addCounterSample(ts,1);return true;},regulatorEnableDelayEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorEnableCompleteEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorDisableEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorDisableRE.exec(eventBase.details);if(!event)return false;const name=event[1];const ctr=this.getCtr_(name,'enabled');ctr.series[0].addCounterSample(ts,0);return true;},regulatorDisableCompleteEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorSetVoltageEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorSetVoltageCompleteEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorSetVoltageCompleteRE.exec(eventBase.details);if(!event)return false;const name=event[1];const voltage=parseInt(event[2]);const ctr=this.getCtr_(name,'voltage');ctr.series[0].addCounterSample(ts,voltage);return true;}};Parser.register(RegulatorParser);return{RegulatorParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const Parser=tr.e.importer.linux_perf.Parser;function SchedParser(importer){Parser.call(this,importer);importer.registerEventHandler('sched_switch',SchedParser.prototype.schedSwitchEvent.bind(this));importer.registerEventHandler('sched_wakeup',SchedParser.prototype.schedWakeupEvent.bind(this));importer.registerEventHandler('sched_blocked_reason',SchedParser.prototype.schedBlockedEvent.bind(this));importer.registerEventHandler('sched_cpu_hotplug',SchedParser.prototype.schedCpuHotplugEvent.bind(this));} +const TestExports={};const schedSwitchRE=new RegExp('prev_comm=(.+) prev_pid=(\\d+) prev_prio=(\\d+) '+'prev_state=(\\S\\+?|\\S\\|\\S) ==> '+'next_comm=(.+) next_pid=(\\d+) next_prio=(\\d+)');const schedBlockedRE=new RegExp('pid=(\\d+) iowait=(\\d) caller=(.+)');TestExports.schedSwitchRE=schedSwitchRE;const schedWakeupRE=/comm=(.+) pid=(\d+) prio=(\d+)(?: success=\d+)? target_cpu=(\d+)/;TestExports.schedWakeupRE=schedWakeupRE;SchedParser.prototype={__proto__:Parser.prototype,schedSwitchEvent(eventName,cpuNumber,pid,ts,eventBase){const event=schedSwitchRE.exec(eventBase.details);if(!event)return false;const prevState=event[4];const nextComm=event[5];const nextPid=parseInt(event[6]);const nextPrio=parseInt(event[7]);if(eventBase.tgid!==undefined){const tgid=parseInt(eventBase.tgid);const process=this.importer.model_.getOrCreateProcess(tgid);if(!process.getThread(pid)){const thread=process.getOrCreateThread(pid);thread.name=eventBase.threadName;}} const nextThread=this.importer.threadsByLinuxPid[nextPid];let nextName;if(nextThread){nextName=nextThread.userFriendlyName;}else{nextName=nextComm;} const cpu=this.importer.getOrCreateCpu(cpuNumber);cpu.switchActiveThread(ts,{stateWhenDescheduled:prevState},nextPid,nextName,{comm